Ajax یک فناوری وب مبتنی بر JavaScript است که به شما کمک می کند وب سایت های پویا و تعاملی ایجاد کنید. وردپرس از Ajax برای تأمین انرژی بسیاری از ویژگیهای اصلی قسمت سرپرست خود مانند ذخیره خودکار پست ها ، مدیریت جلسه کاربر و اعلان ها استفاده می کند.
به طور پیش فرض ، وردپرس همه تماس های Ajax را از طریق پرونده admin-ajax.php
که در / wp-admin strong سایت قرار دارد ، هدایت می کند > دایرکتوری.
تعداد زیادی درخواست همزمان Ajax می تواند منجر به استفاده کد بالا admin-ajax.php
شود ، در نتیجه سرعت و سرعت قابل توجهی در سرور و وب سایت ایجاد می شود. این یکی از رایج ترین مشکلاتی است که بسیاری از سایت های وردپرس بدون بهینه با آن روبرو هستند. به طور معمول ، خود را به عنوان یک وب سایت کند یا خطای HTTP 5xx نشان می دهد (بیشتر 504 یا 502 خطا).
در این مقاله ، شما با فایل admin-ajax.php
وردپرس ، نحوه کار ، مزایا و معایب آن و همچنین نحوه تشخیص و مشکل استفاده از admin-ajax.php
را برطرف کنید.
آماده رفتن هستید؟ بیایید شروع کنیم!
پرونده admin-ajx.php چیست؟ h2>
پرونده admin-ajax.php
حاوی تمام کدهای مسیریابی درخواست های Ajax در وردپرس است. هدف اصلی آن ایجاد ارتباط بین مشتری و سرور با استفاده از Ajax است. وردپرس از آن برای تازه کردن مطالب صفحه بدون بارگیری مجدد آن استفاده می کند ، بنابراین آن را پویا و تعاملی برای کاربران می کند .

یک نمای کلی از نحوه کار Admin Ajax در وردپرس
از آنجا که هسته وردپرس از Ajax برای تأمین انرژی ویژگی های مختلف Backend استفاده می کند ، می توانید از همان توابع استفاده کنید Ajax در وردپرس. تمام کاری که شما باید انجام دهید این است که یک اقدام را ثبت کنید ، آن را به پرونده admin-ajax.php
سایت خود هدایت کنید و مشخص کنید که چگونه می خواهید مقدار را برگرداند. می توانید تنظیم کنید که HTML ، JSON یا حتی XML را برگرداند.

پرونده admin-ajax.php در وردپرس
مطابق با WordPress Trac ، فایل admin-ajax.php
اولین بار در وردپرس 2.1 ظاهر شد. همچنین در انجمن توسعه وردپرس به عنوان مدیر Ajax شناخته می شود.

بررسی میزان استفاده از Ajax در داشبورد MyKinsta
نمودار بالا فقط میزان درخواست admin-ajax.php
را نشان می دهد ، نه اینکه از کجا درخواست شده باشد. این یک روش عالی برای دیدن زمان وقوع خوشه ها است. می توانید آن را با سایر تکنیک های ذکر شده در این پست ترکیب کنید تا علت اصلی را کاهش دهید.

همچنین می توانید از Chrome DevTools استفاده کنید تا ببینید چند درخواست به admin-ajax.php کد ارسال می شود. همچنین می توانید برگه زمان بندی ها را در قسمت شبکه بررسی کنید تا بفهمید چه مدت زمان برای پردازش این درخواست ها لازم است.
در مورد یافتن دلیل دقیق استفاده زیاد از کد admin-ajax.php ، در درجه اول دو دلیل اصلی وجود دارد: یکی به دلیل جلو ، و دیگری به دلیل باطن . ما در مورد هر دو در زیر بحث خواهیم کرد.
نحوه عیب یابی High admin-ajax.php استفاده در وردپرس h2>
افزونه های شخص ثالث یکی از رایج ترین دلایل استفاده زیاد از admin-ajax.php است. به طور معمول ، این مسئله در جبهه سایت مشاهده می شود و به طور مکرر در گزارش های تست سرعت نشان داده می شود.
اما افزونه ها تنها عامل مقصر در اینجا نیستند زیرا مضامین ، هسته وردپرس ، سرور وب ، و حمله DDoS همچنین می تواند دلیل استفاده زیاد Admin Ajax باشد.
بیایید جزئیات آنها را بررسی کنیم.
نحوه تعیین منشأ میزان استفاده بالای admin-ajax.php برای پلاگین ها و مضامین h3>
Ajax-powered پلاگین ها در مخزن WordPress.org

Ajax-powered پلاگین ها در مخزن WordPress.org
Ajax اغلب توسط توسعه دهندگان وردپرس برای ایجاد پلاگین ها و موضوعات پویا و تعاملی استفاده می شود. برخی از نمونه های معروف شامل افزودن ویژگی هایی مانند جستجوی زنده ، فیلترهای محصول ، پیمایش بی نهایت ، سبد خرید پویا ، و جعبه گپ .
فقط به این دلیل که افزونه از Ajax استفاده می کند به این معنی نیست که سرعت سایت شما را کاهش می دهد .

مشاهده درخواست admin-ajax.php در گزارش WebPageTest
معمولاً Admin Ajax در انتهای بارگذاری صفحه بارگیری می شود. همچنین ، می توانید درخواست های Ajax را بارگذاری همزمان کنید ، بنابراین می تواند تاثیری در عملکرد صفحه برای کاربر داشته باشد.
همانطور که در گزارش WebPageTest بالا مشاهده می کنید ،
admin-ajax.php در انتهای صف درخواستها بارگیری می شود ، اما با این وجود 780 میلی ثانیه طول می کشد. فقط برای یک درخواست وقت کافی است.

گزارش GTmetrix حاکی از افزایش سن استفاده جدی admin-ajax.php
وقتی توسعه دهندگان Ajax را به درستی بر روی وردپرس پیاده سازی نکنند ، می تواند منجر به مشکلات عملکرد شدید شود. گزارش GTmetrix فوق نمونه کاملی از چنین رفتاری است.
همچنین می توانید از GTmetrix برای جستجوی اطلاعات پست و پاسخ منفرد استفاده کنید. می توانید از این ویژگی برای مشخص کردن علت ایجاد مشکل استفاده کنید.
برای انجام این کار ، به برگه آبشار گزارش GTmetrix بروید ، و سپس مورد POST admin-ajax.php را پیدا کرده و کلیک کنید. برای این درخواست سه زبانه خواهید دید: عنوان ، پست و پاسخ.

داده های عنوان درخواست POST admin-ajax.php
بررسی برگه های ارسال و پاسخ درخواست به شما نکاتی را می دهد تا از دلایل وجود مشکل در عملکرد مطلع شوید. برای این سایت می توانید سرنخ ها را در برگه Response مشاهده کنید.

مدیر پست- اطلاعات پاسخ درخواست ajax.php
می توانید ببینید که بخشی از پاسخ با برچسب ورودی با شناسه تنظیم شده روی “fusion-form-nonce-656” ارتباط دارد.
جستجوی سریع این سرنخ شما را به وب سایت ThemeFusion ، سازندگان تم Avada رهنمون می کند. بنابراین ، می توانید نتیجه بگیرید که این درخواست از موضوع یا هر یک از افزونه هایی که همراه آن است نشأت گرفته است.
در چنین شرایطی ، ابتدا باید اطمینان حاصل کنید که موضوع Avada و تمام افزونه های مربوط به آن کاملاً به روز شده اند. اگر با این کار مشکلی برطرف نشد ، می توانید موضوع را غیرفعال کنید و ببینید آیا این مسئله مسئله را برطرف می کند.
برخلاف غیرفعال کردن افزونه ، غیرفعال کردن یک موضوع در اکثر سناریوها عملی نیست. بنابراین ، برای حذف هرگونه گلوگاه ، بهینه سازی موضوع را امتحان کنید. همچنین می توانید با تیم پشتیبانی موضوع تماس بگیرید تا ببینید آیا آنها می توانند راه حل بهتری را پیشنهاد دهند.
آزمایش یک وب سایت کند دیگر در GTmetrix منجر به یافتن موارد مشابه با صفحه سازنده ویژوال و پلاگین های Notification Bar شد.

داده های پاسخ درخواست POST دیگر admin-ajax.php

اطلاعات ارسال درخواست POST admin-ajax.php
خوشبختانه ، اگر نمی توانید با این افزونه مشکلی را برطرف کنید ، بیشتر دوست دارید که پلاگین های جایگزین زیادی برای آزمایش داشته باشید. به عنوان مثال ، وقتی صحبت از سازندگان صفحه می شود می توانید Beaver Builder یا Elementor را نیز امتحان کنید.
چگونه می توان منشا High admin-ajax.php را تعیین کرد h3>
گاهی اوقات ، ممکن است داده های ارسال و پاسخ ارائه شده در گزارش های تست سرعت چندان واضح و روشن نباشند. در اینجا ، پیدا کردن منشأ استفاده از کد بالا admin-ajax.php کد به آسانی نیست. در چنین مواردی ، همیشه می توانید این کار را به روش قدیمی انجام دهید.
تمام افزونه های سایت خود را غیرفعال کنید ، حافظه پنهان سایت خود را پاک کنید (در صورت وجود) ، و سپس دوباره تست سرعت را انجام دهید. اگر
admin-ajax.php همچنان وجود دارد ، به احتمال زیاد مقصر موضوع است. اما اگر جایی یافت نشد ، باید هر پلاگین را یکی یکی فعال کنید و هر بار تست سرعت را انجام دهید. با حذف ، اصل مسئله را قفل می کنید.
نکته: استفاده از محیط صحنه سازی (به عنوان مثال محیط صحنه سازی Kinsta ) یک روش عالی برای اجرای آزمایشات بر روی سایت شما بدون تأثیر بر سایت زنده شما است. هنگامی که علت را مشخص کردید و مشکل را در محیط صحنه حل کردید ، می توانید تغییرات سایت زنده خود را تحت فشار قرار دهید .
تشخیص مشکلات Backend Server با admin-ajax.php
دومین دلیل متداول در استفاده زیاد از کد admin-ajax.php ، وردپرس Heartbeat API است که تماسهای مکرر Ajax ایجاد می کند و منجر به استفاده زیاد CPU در سرور می شود. به طور معمول ، این امر به دلیل ورود بسیاری از کاربران به داشبورد Backend وردپرس ایجاد می شود. از این رو ، این آزمایش را در تست های سرعت مشاهده نخواهید کرد.
به طور پیش فرض ، Heartbeat API هر 15 ثانیه برای ذخیره خودکار پست ها یا صفحات ، از پرونده
admin-ajax.php نظرسنجی می کند. اگر از سرور میزبان مشترک استفاده می کنید ، منابع سرور زیادی به این اختصاص ندارید سایت شما. اگر یک پست یا صفحه را ویرایش می کنید و برگه را برای مدت قابل توجهی باز می گذارید ، می تواند بسیاری از درخواست های Admin Ajax را جمع آوری کند.
به عنوان مثال ، هنگام نوشتن یا ویرایش پست ها ، یک کاربر به تنهایی می تواند در عرض یک ساعت 240 درخواست ایجاد کند!

درخواستهای ذخیره ساز مکرر مدیر admin-ajax.php
این تعداد درخواست فقط در یک کاربر باطنی است. حال سایتی را تصور کنید که در آن همزمان چندین ویرایشگر به سیستم وارد شده باشد. چنین سایتی می تواند درخواستهای Ajax را سریعاً جمع و جور کند و باعث استفاده زیاد از پردازنده می شود.
Kinsta در حالی که به DARTDrones در مقیاس سایت WooCommerce خود کمک می کند تا به این موضوع دسترسی پیدا کند مخزن کوسه.
آنها بیش از 4،100 تماس
admin-ajax.php در یک روز فقط با 2000 بازدید کننده منحصر به فرد دریافت کردند. این نسبت درخواست به بازدید ضعیف است.

استفاده شدید از مدیر-ajax.php در dartdrones.com
تیم Kinsta متوجه URL ارجاع / / wp-admin شدند و علت اصلی را به درستی تعیین کردند. این درخواست ها به دلیل به روزرسانی مدیران و سردبیران DARTDrones به طور مستمر سایت در انتظار نمایش بود.
استفاده از افزونه کنترل ضربان قلب برای کاهش درخواست های Ajax h4>
با استفاده از افزونه کنترل ضربان قلب توسط WP Rocket می توانید این مشکل را به راحتی برطرف کنید. به شما امکان می دهد تنها با چند کلیک فرکانس Heartbeat API را غیرفعال یا تغییر دهید.

افزونه کنترل ضربان قلب
با نصب و فعال سازی افزونه Heartbeat Control ، می توانید فرکانس Heartbeat API را در داشبورد وردپرس ، سایت سایت و ویرایشگر پست مدیریت کنید.

داشبورد “تنظیمات عمومی” افزونه کنترل ضربان قلب
اگر سرور شما منابع CPU محدودی دارد ، من به شما توصیه می کنم ضربان قلب را غیرفعال کنید هم در داشبورد وردپرس و هم در Frontend. همچنین می توانید فرکانس ضربان قلب را برای گزینه “ویرایشگر پست” تغییر دهید و آن را به 30 ثانیه (یا حتی 60 ثانیه) افزایش دهید. هرچه فرکانس بالاتر باشد ، صرفه جویی در مصرف منابع سرور بیشتر خواهد بود.
تنظیمات دقیق مورد نیاز برای استفاده از سایت به سایت دیگر متفاوت است. اگر درباره استفاده از آن مطمئن نیستید ، می توانید با توسعه دهنده وب خود مشورت کنید .
ترافیک بالا به دلیل حمله DDoS یا ربات های هرزنامه h3>
طاقت فرسا بودن سایت شما با حمله DDoS یا ربات های هرزنامه همچنین می تواند منجر به استفاده زیاد از کد admin-ajax.php کد شود. با این حال ، لزوماً چنین حمله ای افزایش درخواست های Admin Ajax را نشان نمی دهد. این فقط خسارت وثیقه است.
اگر سایت شما تحت حمله DDoS قرار دارد ، اولویت شما این است که آن را پشت سر CDN / WAF قوی مانند Cloudflare یا Sucuri . هر برنامه میزبانی با Kinsta همچنین شامل Kinsta CDN است که به شما کمک می کند تا حد زیادی منابع وب سایت خود را بارگیری کنید.
برای کسب اطلاعات بیشتر در مورد اینکه چگونه می توانید از وب سایت های خود در برابر حملات مخرب مانند اینها محافظت کنید ، می توانید به راهنمای جامع ما مراجعه کنید نحوه متوقف کردن حمله DDoS .
خلاصه h2>
وردپرس برای پیاده سازی بسیاری از ویژگی های اصلی خود از Ajax در API Heartbeat خود استفاده می کند. با این حال ، اگر به درستی استفاده نشود ، می تواند باعث افزایش زمان بار شود. این امر معمولاً به دلیل تکرار زیاد درخواستها به پرونده
admin-ajax.php ایجاد می شود.
در این مقاله ، شما با دلایل مختلف استفاده زیاد از کد ، نحوه تشخیص اینکه چه چیزی مسئول این علامت است و چطور می توانید ادامه دهید ، آشنا شدید. رفع آن در اکثر موارد ، پیروی از این راهنما باعث می شود که سایت شما در کمترین زمان بطور کامل پشتیبان تهیه و اجرا شود.
با این وجود ، در بعضی موارد ارتقا to به سروری با منابع بالاتر تنها راه حل مناسب است. به خصوص برای موارد استفاده مانند تجارت الکترونیکی و سایت های عضویت. اگر چنین سایتی را اجرا می کنید ، ارتقا to به یک میزبان وردپرس را تجربه کنید که در فروش این نوع تجربه دارد مسائل مربوط به عملکرد.
اگر هنوز با استفاده زیاد em >admin-ajax.php در سایت وردپرس خود دست و پنجه نرم می کنید ، در بخش نظرات به ما اطلاع دهید. em >
اگر از این مقاله لذت بردید ، پس از آن دوست دارید Kinsta’s WordPress platform hosting. وب سایت خود را توربوشارژ کرده و از تیم پیشکسوت وردپرس ما پشتیبانی 24/7 ساعته دریافت کنید. زیرساختهای Google Cloud ما بر مقیاس گذاری خودکار ، عملکرد و امنیت تمرکز دارند. بگذارید تفاوت Kinsta را به شما نشان دهیم! برنامه های ما را بررسی کنید a >
منبع:
https://kinsta.com/blog/admin-ajax-php/.