Ajax هي تقنية ويب قائمة على JavaScript تساعدك على إنشاء مواقع ويب ديناميكية وتفاعلية. يستخدم وورد بريس Ajax لتشغيل العديد من ميزات منطقة الإدارة الأساسية مثل الحفظ التلقائي للمنشورات وإدارة جلسة المستخدم والإشعارات.
بشكل افتراضي ، يوجه وورد بريس جميع مكالمات Ajax من خلال admin-ajax.phpالملف الموجود في دليل الموقع /wp-admin.
يمكن أن تؤدي العديد من طلبات Ajax المتزامنة إلى admin-ajax.phpاستخدام مرتفع ، مما يؤدي إلى تباطؤ كبير في الخادم وموقع الويب. إنها واحدة من أكثر المشاكل شيوعًا التي تواجهها العديد من مواقع وورد بريس غير المحسّنة. عادةً ما يظهر على أنه موقع ويب بطيء أو خطأ HTTP 5xx (غالبًا أخطاء 504 أو 502 ).
في هذه المقالة ، ستتعرف على admin-ajax.phpملف وورد بريس ، وكيف يعمل ، وفوائده وعيوبه ، وكيف يمكنك تشخيص admin-ajax.phpمشكلة الاستخدام العالي وإصلاحها .
ما هو ملف admin-ajx.php؟
و admin-ajax.phpيحتوي الملف على كافة رمز لتوجيه طلبات اياكس على وورد. الغرض الأساسي منه هو إنشاء اتصال بين العميل والخادم باستخدام Ajax. يستخدمها وورد بريس لتحديث محتويات الصفحة دون إعادة تحميلها ، مما يجعلها ديناميكية وتفاعلية للمستخدمين.
نظرة عامة أساسية حول كيفية عمل Admin Ajax على وورد بريس
نظرة عامة أساسية حول كيفية عمل Admin Ajax على وورد بريس
نظرًا لأن جوهر وورد بريس يستخدم بالفعل Ajax لتشغيل ميزاته الخلفية المختلفة ، يمكنك استخدام نفس الوظائف لاستخدام Ajax على وورد بريس. كل ما عليك فعله هو تسجيل إجراء ، وتوجيهه إلى admin-ajax.phpملف موقعك ، وتحديد الطريقة التي تريدها لإرجاع القيمة. يمكنك تعيينه لإرجاع HTML أو JSON أو حتى XML.
admin-ajax.php في وورد بريس
admin-ajax.php في وورد بريس
وفقًا لـ وورد بريس Trac ، admin-ajax.phpظهر الملف لأول مرة في وورد بريس 2.1. يشار إليه أيضًا باسم Ajax Admin في مجتمع تطوير وورد بريس .
التحقق من استخدام Ajax في لوحة معلومات MyKinsta
التحقق من استخدام Ajax في لوحة معلومات MyKinsta
يوضح الرسم البياني أعلاه مقدار admin-ajax.phpالطلبات فقط ، وليس من أين قد تأتي منها. إنها طريقة رائعة لمعرفة وقت حدوث التموجات. يمكنك دمجها مع الأساليب الأخرى المذكورة في هذا المنشور لتضييق نطاق السبب الأساسي.
التحقق من عدد طلبات admin-ajax.php في Chrome DevTools
التحقق من عدد طلبات admin-ajax.php في Chrome DevTools
يمكنك أيضًا استخدام Chrome DevTools لمعرفة عدد الطلبات التي يتم إرسالها إلى admin-ajax.php. يمكنك أيضًا التحقق من علامة التبويب ” التوقيتات” ضمن قسم ” الشبكة” لمعرفة مقدار الوقت الذي تستغرقه معالجة هذه الطلبات.
بالنسبة لإيجاد السبب الدقيق وراء admin-ajax.phpالاستخدام العالي ، هناك سببان رئيسيان: أحدهما بسبب الواجهة الأمامية والآخر بسبب الواجهة الخلفية. سنناقش كلاهما أدناه.
يعمل Ajax على تشغيل العديد من ميزات وورد بريس الرئيسية … ولكن عند ورود الكثير من الطلبات ، يمكن أن يؤدي أيضًا إلى إبطاء موقعك بشكل كبير. 😱 تعرف على كيفية إصلاح هذه المشكلة وتحسين استخدام Ajax هنا 👇
انقر للتغريد
كيفية تصحيح أخطاء استخدام admin-ajax.php المرتفع على وورد بريس
تعد المكونات الإضافية للجهات الخارجية أحد الأسباب الأكثر شيوعًا وراء ارتفاع استخدام admin-ajax.php. عادة ، تظهر هذه المشكلة في الواجهة الأمامية للموقع وتظهر بشكل متكرر في تقارير اختبار السرعة.
ولكن الإضافات ليست فقط السبب الرئيسي هنا كما الموضوعات ، جوهر وورد، و خادم ، و دوس الهجوم يمكن أيضا أن يكون السبب وراء ارتفاع استخدام الادارية اياكس.
دعنا نستكشفها بمزيد من التفصيل.
كيفية تحديد أصل استخدام admin-ajax.php العالي للمكونات الإضافية والسمات
الإضافات المدعومة من Ajax في مستودع وورد بريس.org
الإضافات المدعومة من Ajax في مستودع وورد بريس.org
غالبًا ما يستخدم مطورو وورد بريس Ajax لإنشاء إضافات وسمات ديناميكية وتفاعلية. وتشمل بعض الأمثلة الشعبية إضافة ميزات مثل البحث الحية ، والمرشحات المنتج، التمرير لانهائي، عربة التسوق الحيوية ، و مربع الدردشة .
لا يعني مجرد استخدام مكون إضافي لـ Ajax أنه سيؤدي إلى إبطاء موقعك .
طلب admin-ajax.php في تقرير WebPageTest
عرض طلب admin-ajax.php في تقرير WebPageTest
عادة ، يتم تحميل Admin Ajax في نهاية تحميل الصفحة. أيضًا ، يمكنك تعيين طلبات Ajax ليتم تحميلها بشكل غير متزامن ، لذلك يمكن أن يكون لها تأثير ضئيل أو معدوم على أداء الصفحة المتصور للمستخدم.
كما ترى في تقرير WebPageTest أعلاه ، يتم admin-ajax.phpالتحميل في نهاية قائمة انتظار الطلبات ، لكنها لا تزال تستغرق 780 مللي ثانية. هذا كثير من الوقت لطلب واحد فقط.
يشير تقرير GTmetrix إلى ارتفاع خطير في استخدام admin-ajax.php
يشير تقرير GTmetrix إلى ارتفاع خطير في استخدام admin-ajax.php
عندما لا يطبق المطورون Ajax بشكل صحيح على وورد بريس ، فقد يؤدي ذلك إلى مشكلات خطيرة في الأداء. تقرير GTmetrix أعلاه هو مثال ممتاز لمثل هذا السلوك.
يمكنك أيضًا استخدام GTmetrix للبحث في بيانات النشر والاستجابة الفردية. يمكنك استخدام هذه الميزة لتحديد سبب المشكلة.
للقيام بذلك ، انتقل إلى علامة التبويب Waterfall في تقرير GTmetrix ، ثم ابحث عن عنصر POST admin-ajax.php وانقر عليه . سترى ثلاث علامات تبويب لهذا الطلب: الرؤوس والنشر والاستجابة.
POST بيانات رؤوس طلب admin-ajax.php
POST بيانات رؤوس طلب admin-ajax.php
التحقق من الطلب و المشاركة و الاستجابة سوف علامات التبويب تعطيك بعض النصائح لمعرفة الأسباب الكامنة وراء مشكلة الأداء. بالنسبة لهذا الموقع ، يمكنك رؤية أدلة في علامة التبويب الاستجابة.
بيانات استجابة طلب admin-ajax.php
بيانات استجابة طلب admin-ajax.php
يمكنك أن ترى أن هذا الجزء من الاستجابة له علاقة بعلامة إدخال مع تعيين معرف على “fusion-form-nonce-656”.
تريد أن تعرف كيف زدنا من حركة المرور لدينا أكثر من 1000 ٪؟
انضم إلى أكثر من 20000 آخرين ممن يتلقون رسائلنا الإخبارية الأسبوعية مع نصائح من الداخل حول وورد بريس!
إشترك الآن
سيؤدي البحث السريع عن هذا الدليل إلى توجيهك إلى موقع ThemeFusion على الويب ، وهم مبتكرو ثيم Avada. ومن ثم ، يمكنك استنتاج أن الطلب يأتي من القالب ، أو من أي من المكونات الإضافية المرفقة به.
في مثل هذه الحالة ، يجب عليك أولاً التأكد من تحديث سمة Avada وجميع المكونات الإضافية ذات الصلة بالكامل. إذا لم يؤد ذلك إلى حل المشكلة ، فيمكنك محاولة تعطيل السمة ومعرفة ما إذا كان ذلك سيؤدي إلى حل المشكلة.
على عكس تعطيل المكوِّن الإضافي ، فإن تعطيل السمة ليس ممكنًا في معظم السيناريوهات. ومن ثم ، حاول تحسين السمة لإزالة أي اختناقات. يمكنك أيضًا التواصل مع فريق دعم الموضوع لمعرفة ما إذا كان بإمكانهم اقتراح حل أفضل.
أدى اختبار موقع ويب بطيء آخر في GTmetrix إلى العثور على مشكلات مماثلة في Visual Composer Page Builder ومكونات شريط التنبيهات.
بيانات استجابة لطلب admin-ajax.php آخر POST
بيانات استجابة لطلب admin-ajax.php آخر POST
نشر بيانات طلب admin-ajax.php
نشر بيانات طلب admin-ajax.php
لحسن الحظ ، إذا لم تتمكن من حل مشكلة مع المكون الإضافي ، فأنت تفضل أن يكون لديك العديد من المكونات الإضافية البديلة المتاحة لتجربتها. على سبيل المثال ، عندما يتعلق الأمر ببناة الصفحات ، يمكنك أيضًا تجربة Beaver Builder أو Elementor.
كيفية تحديد أصل الملف admin-ajax.php
في بعض الأحيان ، قد لا تكون بيانات النشر والاستجابة المقدمة في تقارير اختبار السرعة واضحة ومباشرة. هنا ، العثور على أصل admin-ajax.phpالاستخدام العالي ليس بالأمر السهل. في مثل هذه الحالات ، يمكنك دائمًا القيام بذلك بالطريقة القديمة.
قم بتعطيل جميع المكونات الإضافية لموقعك ، وامسح ذاكرة التخزين المؤقت لموقعك (إن وجدت) ، ثم قم بإجراء اختبار سرعة مرة أخرى. إذا كان admin-ajax.phpلا يزال موجودًا ، فإن الجاني الأكثر احتمالًا هو الموضوع. ولكن إذا لم يتم العثور عليها في أي مكان ، فيجب عليك تنشيط كل مكون إضافي واحدًا تلو الآخر وإجراء اختبارات السرعة في كل مرة. من خلال عملية الحذف ، ستغلق مصدر المشكلة.
نصيحة: يعد استخدام بيئة التدريج (مثل بيئة التدريج Kinsta ) طريقة رائعة لإجراء الاختبارات على موقعك دون التأثير على موقعك المباشر. بمجرد تحديد السبب وإصلاح المشكلة في بيئة التدريج ، يمكنك دفع التغييرات إلى موقعك المباشر .
تشخيص مشكلات الخادم الخلفي باستخدام admin-ajax.php
السبب الثاني الأكثر شيوعًا للاستخدام العالي admin-ajax.phpهو واجهة برمجة تطبيقات وورد بريس Heartbeat التي تولد مكالمات Ajax متكررة ، مما يؤدي إلى ارتفاع استخدام وحدة المعالجة المركزية على الخادم. عادةً ما يحدث هذا بسبب قيام العديد من المستخدمين بتسجيل الدخول إلى لوحة معلومات الواجهة الخلفية لـ وورد بريس. وبالتالي ، لن ترى هذا يظهر في اختبارات السرعة.
هل سئمت من مواجهة مشكلات مع موقع وورد بريس الخاص بك؟ احصل على أفضل وأسرع دعم استضافة مع Kinsta! تحقق من خططنا
بشكل افتراضي ، تستطلع Heartbeat API admin-ajax.phpالملف كل 15 ثانية لحفظ المنشورات أو الصفحات تلقائيًا. إذا كنت تستخدم خادم استضافة مشتركًا ، فلن يكون لديك العديد من موارد الخادم المخصصة لموقعك. إذا كنت تقوم بتحرير منشور أو صفحة وتركت علامة التبويب مفتوحة لفترة طويلة ، فيمكنها أن ترفع الكثير من طلبات Admin Ajax.
على سبيل المثال ، عندما تكتب منشورات أو تعدلها ، يمكن لمستخدم واحد فقط إنشاء 240 طلبًا في ساعة واحدة!
كثرة طلبات admin-ajax.php الحفظ التلقائي
كثرة طلبات admin-ajax.php الحفظ التلقائي
هناك العديد من الطلبات على الواجهة الخلفية لمستخدم واحد فقط. تخيل الآن موقعًا يوجد به العديد من المحررين الذين قاموا بتسجيل الدخول في نفس الوقت. يمكن لمثل هذا الموقع أن يرفع طلبات Ajax بسرعة ، مما يولد استخدامًا عاليًا لوحدة المعالجة المركزية.
لقد صادف Kinsta هذه المشكلة بالذات أثناء مساعدة DARTDrones على توسيع نطاق موقع WooCommerce الخاص بهم للظهور على Shark Tank.
لقد تلقوا أكثر من 4100 admin-ajax.phpمكالمة في اليوم مع 2000 زائر فريد فقط. هذه نسبة طلبات إلى الزيارات ضعيفة.
كثرة استخدام admin-ajax.php على dartdrones.com
كثرة استخدام admin-ajax.php على dartdrones.com
لاحظ فريق Kinsta في ل / الفسفور الابيض بين المشرف المرجع URL وتحديد السبب الجذري بشكل صحيح. كانت هذه الطلبات بسبب قيام مسؤولي DARTDrones والمحررين بتحديث الموقع بشكل متكرر تحسباً للعرض.
قام وورد بريس بإصلاح مشكلة Heartbeat API هذه جزئيًا منذ فترة طويلة. على سبيل المثال ، يمكنك تقليل تكرار الطلبات التي تم إنشاؤها بواسطة Heartbeat API على المضيفين ذوي الموارد المحدودة. كما أنه يعلق نفسه بعد ساعة واحدة من عدم نشاط لوحة المفاتيح / الماوس / اللمس.
استخدام المكون الإضافي للتحكم في نبضات القلب لتقليل طلبات Ajax
يمكنك حل هذه المشكلة بسهولة باستخدام المكون الإضافي Heartbeat Control بواسطة WP Rocket. يسمح لك بتعطيل أو تعديل تردد واجهة برمجة تطبيقات Heartbeat ببضع نقرات.
المكون الإضافي Heartbeat Control
المكون الإضافي Heartbeat Control
مع تثبيت وتفعيل المكون الإضافي Heartbeat Control ، يمكنك إدارة تكرار واجهة برمجة تطبيقات Heartbeat على لوحة معلومات وورد بريس وواجهة الموقع ومحرر النشر.
لوحة معلومات “الإعدادات العامة” في المكون الإضافي Heartbeat Control
لوحة معلومات “الإعدادات العامة” في المكون الإضافي Heartbeat Control
إذا كان الخادم الخاص بك يحتوي على موارد محدودة لوحدة المعالجة المركزية ، فإنني أوصيك بتعطيل Heartbeat على كل من لوحة معلومات وورد بريس والواجهة الأمامية. يمكنك أيضًا تعديل تردد نبضات القلب لخيار “محرر النشر” وزيادته إلى 30 ثانية (أو حتى 60 ثانية). كلما زاد التردد ، زاد التوفير في موارد الخادم المستخدمة.
تختلف الإعدادات الدقيقة التي سيتعين عليك استخدامها من موقع إلى آخر. إذا لم تكن متأكدًا مما يجب استخدامه ، فيمكنك استشارة مطور الويب الخاص بك .
حركة مرور عالية بسبب هجوم DDoS أو روبوتات البريد العشوائي
يمكن أن يؤدي إغراق موقعك بهجوم DDoS أو روبوتات البريد العشوائي إلى admin-ajax.phpاستخدام عالٍ . ومع ذلك ، فإن مثل هذا الهجوم لا يستهدف بالضرورة زيادة طلبات Admin Ajax. إنها مجرد أضرار جانبية.
إذا كان موقعك يتعرض لهجوم DDoS ، فيجب أن تكون أولويتك الحصول عليه خلف CDN / WAF قوي مثل Cloudflare أو Sucuri . تتضمن كل خطة استضافة مع Kinsta أيضًا Kinsta CDN ، والتي يمكن أن تساعدك على تفريغ موارد موقع الويب الخاص بك إلى حد كبير.
لمعرفة المزيد حول كيفية حماية مواقع الويب الخاصة بك من الهجمات الضارة مثل هذه ، يمكنك الرجوع إلى دليلنا التفصيلي حول كيفية إيقاف هجوم DDoS .
إذا كنت ترى خادمًا وموقع ويب بطيئين ، فقد يرجع ذلك إلى وجود عدد كبير جدًا من طلبات Ajax. ⏳ استعد لتشخيص المشكلة وإصلاحها باستخدام هذا الدليل!
انقر للتغريد
ملخص
يستخدم وورد بريس Ajax في Heartbeat API الخاص به لتنفيذ العديد من ميزاته الأساسية. ومع ذلك ، يمكن أن يؤدي إلى زيادة أوقات التحميل إذا لم يتم استخدامه بشكل صحيح. يحدث هذا عادةً بسبب كثرة الطلبات على admin-ajax.phpالملف.
في هذه المقالة ، تعرفت على الأسباب المختلفة لارتفاع admin-ajax.phpالاستخدام ، وكيفية تشخيص المسؤول عن هذه الأعراض ، وكيف يمكنك الشروع في إصلاحه. في معظم الحالات ، يجب أن يؤدي اتباع هذا الدليل إلى إعادة تشغيل موقعك وتشغيله بسلاسة في أي وقت من الأوقات.
ومع ذلك ، في بعض الحالات ، تكون الترقية إلى خادم بموارد أعلى هي الحل الوحيد القابل للتطبيق. خاصة للمطالبة بحالات الاستخدام مثل التجارة الإلكترونية ومواقع العضوية. إذا كنت تقوم بتشغيل مثل هذا الموقع ، ففكر في الترقية إلى مضيف وورد بريس مُدار يتمتع بخبرة في التعامل مع هذه الأنواع من مشكلات الأداء.