چگونه می توان میزان مصرف بالای Admin-Ajax را در سایت وردپرس خود تشخیص داد

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 است. وردپرس از آن برای تازه کردن مطالب صفحه بدون بارگیری مجدد آن استفاده می کند ، بنابراین آن را پویا و تعاملی برای کاربران می کند .

A basic overview of how Admin Ajax works on WordPress

یک نمای کلی از نحوه کار Admin Ajax در وردپرس

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

admin-ajax.php file in WordPress

پرونده admin-ajax.php در وردپرس

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

Checking Ajax usage in MyKinsta dashboard

بررسی میزان استفاده از Ajax در داشبورد MyKinsta

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

Checking the number of admin-ajax.php requests in Chrome DevTools بررسی تعداد درخواست های admin-ajax.php در Chrome DevTools

همچنین می توانید از Chrome DevTools استفاده کنید تا ببینید چند درخواست به admin-ajax.php کد ارسال می شود. همچنین می توانید برگه زمان بندی ها را در قسمت شبکه بررسی کنید تا بفهمید چه مدت زمان برای پردازش این درخواست ها لازم است.

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

نحوه عیب یابی High admin-ajax.php استفاده در وردپرس h2>

افزونه های شخص ثالث یکی از رایج ترین دلایل استفاده زیاد از admin-ajax.php است. به طور معمول ، این مسئله در جبهه سایت مشاهده می شود و به طور مکرر در گزارش های تست سرعت نشان داده می شود.

اما افزونه ها تنها عامل مقصر در اینجا نیستند زیرا مضامین ، هسته وردپرس ، سرور وب ، و حمله DDoS همچنین می تواند دلیل استفاده زیاد Admin Ajax باشد.

بیایید جزئیات آنها را بررسی کنیم.

نحوه تعیین منشأ میزان استفاده بالای admin-ajax.php برای پلاگین ها و مضامین h3>

Ajax-powered plugins in WordPress.org repository

Ajax-powered پلاگین ها در مخزن WordPress.org

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

فقط به این دلیل که افزونه از Ajax استفاده می کند به این معنی نیست که سرعت سایت شما را کاهش می دهد .

admin-ajax.php request in WebPageTest report

مشاهده درخواست admin-ajax.php در گزارش WebPageTest

معمولاً Admin Ajax در انتهای بارگذاری صفحه بارگیری می شود. همچنین ، می توانید درخواست های Ajax را بارگذاری همزمان کنید ، بنابراین می تواند تاثیری در عملکرد صفحه برای کاربر داشته باشد.

همانطور که در گزارش WebPageTest بالا مشاهده می کنید ،

admin-ajax.php در انتهای صف درخواستها بارگیری می شود ، اما با این وجود 780 میلی ثانیه طول می کشد. فقط برای یک درخواست وقت کافی است.

GTmetrix report indicating a serious admin-ajax.php usage spike

گزارش GTmetrix حاکی از افزایش سن استفاده جدی admin-ajax.php

وقتی توسعه دهندگان Ajax را به درستی بر روی وردپرس پیاده سازی نکنند ، می تواند منجر به مشکلات عملکرد شدید شود. گزارش GTmetrix فوق نمونه کاملی از چنین رفتاری است.

همچنین می توانید از GTmetrix برای جستجوی اطلاعات پست و پاسخ منفرد استفاده کنید. می توانید از این ویژگی برای مشخص کردن علت ایجاد مشکل استفاده کنید.

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

POST admin-ajax.php request’s Headers data

داده های عنوان درخواست POST admin-ajax.php

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

POST admin-ajax.php request’s Response data

مدیر پست- اطلاعات پاسخ درخواست ajax.php

می توانید ببینید که بخشی از پاسخ با برچسب ورودی با شناسه تنظیم شده روی “fusion-form-nonce-656” ارتباط دارد.

جستجوی سریع این سرنخ شما را به وب سایت ThemeFusion ، سازندگان تم Avada رهنمون می کند. بنابراین ، می توانید نتیجه بگیرید که این درخواست از موضوع یا هر یک از افزونه هایی که همراه آن است نشأت گرفته است.

در چنین شرایطی ، ابتدا باید اطمینان حاصل کنید که موضوع Avada و تمام افزونه های مربوط به آن کاملاً به روز شده اند. اگر با این کار مشکلی برطرف نشد ، می توانید موضوع را غیرفعال کنید و ببینید آیا این مسئله مسئله را برطرف می کند.

برخلاف غیرفعال کردن افزونه ، غیرفعال کردن یک موضوع در اکثر سناریوها عملی نیست. بنابراین ، برای حذف هرگونه گلوگاه ، بهینه سازی موضوع را امتحان کنید. همچنین می توانید با تیم پشتیبانی موضوع تماس بگیرید تا ببینید آیا آنها می توانند راه حل بهتری را پیشنهاد دهند.

آزمایش یک وب سایت کند دیگر در GTmetrix منجر به یافتن موارد مشابه با صفحه سازنده ویژوال و پلاگین های Notification Bar شد.

Another POST admin-ajax.php request’s Response data

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

POST admin-ajax.php request’s Post data

اطلاعات ارسال درخواست 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 درخواست ایجاد کند!

Frequent autosave admin-ajax.php requests

درخواستهای ذخیره ساز مکرر مدیر admin-ajax.php

این تعداد درخواست فقط در یک کاربر باطنی است. حال سایتی را تصور کنید که در آن همزمان چندین ویرایشگر به سیستم وارد شده باشد. چنین سایتی می تواند درخواستهای Ajax را سریعاً جمع و جور کند و باعث استفاده زیاد از پردازنده می شود.

Kinsta در حالی که به DARTDrones در مقیاس سایت WooCommerce خود کمک می کند تا به این موضوع دسترسی پیدا کند مخزن کوسه.

آنها بیش از 4،100 تماس

admin-ajax.php در یک روز فقط با 2000 بازدید کننده منحصر به فرد دریافت کردند. این نسبت درخواست به بازدید ضعیف است.

Heavy admin-ajax.php usage on dartdrones.com

استفاده شدید از مدیر-ajax.php در dartdrones.com

تیم Kinsta متوجه URL ارجاع / / wp-admin شدند و علت اصلی را به درستی تعیین کردند. این درخواست ها به دلیل به روزرسانی مدیران و سردبیران DARTDrones به طور مستمر سایت در انتظار نمایش بود.

WordPress مدتها پیش این Heartbeat API مشکل را برطرف کرد. به عنوان مثال ، می توانید تعداد دفعات درخواست های تولید شده توسط Heartbeat API را روی میزبان با منابع محدود کاهش دهید. همچنین بعد از یک ساعت عدم فعالیت صفحه کلید / ماوس / لمس ، خود را معلق می کند.

استفاده از افزونه کنترل ضربان قلب برای کاهش درخواست های Ajax h4>

با استفاده از افزونه کنترل ضربان قلب توسط WP Rocket می توانید این مشکل را به راحتی برطرف کنید. به شما امکان می دهد تنها با چند کلیک فرکانس Heartbeat API را غیرفعال یا تغییر دهید.

The Heartbeat Control plugin

افزونه کنترل ضربان قلب

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

Heartbeat Control plugin’s ‘General settings’ dashboard

داشبورد “تنظیمات عمومی” افزونه کنترل ضربان قلب

اگر سرور شما منابع CPU محدودی دارد ، من به شما توصیه می کنم ضربان قلب را غیرفعال کنید هم در داشبورد وردپرس و هم در Frontend. همچنین می توانید فرکانس ضربان قلب را برای گزینه “ویرایشگر پست” تغییر دهید و آن را به 30 ثانیه (یا حتی 60 ثانیه) افزایش دهید. هرچه فرکانس بالاتر باشد ، صرفه جویی در مصرف منابع سرور بیشتر خواهد بود.

تنظیمات دقیق مورد نیاز برای استفاده از سایت به سایت دیگر متفاوت است. اگر درباره استفاده از آن مطمئن نیستید ، می توانید با توسعه دهنده وب خود مشورت کنید .

ترافیک بالا به دلیل حمله DDoS یا ربات های هرزنامه h3>

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

اگر سایت شما تحت حمله DDoS قرار دارد ، اولویت شما این است که آن را پشت سر CDN / WAF قوی مانند Cloudflare یا Sucuri . هر برنامه میزبانی با Kinsta همچنین شامل Kinsta CDN است که به شما کمک می کند تا حد زیادی منابع وب سایت خود را بارگیری کنید.

برای کسب اطلاعات بیشتر در مورد اینکه چگونه می توانید از وب سایت های خود در برابر حملات مخرب مانند اینها محافظت کنید ، می توانید به راهنمای جامع ما مراجعه کنید نحوه متوقف کردن حمله DDoS .

اگر هستید دیدن یک سرور و وب سایت با سرعت کم ، ممکن است به دلیل درخواست های آژاکس زیاد باشد. to با این راهنما آماده تشخیص و رفع آن شوید! برای توییت کلیک کنید

خلاصه 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/.

دیدگاهتان را بنویسید