WordPress-da admin-ajax yordamida server yukini qanday kamaytirish mumkin. WordPressni qanday tezlashtirish mumkin - admin-ajaxdan xalos bo'lish Serverga so'rovlar chastotasini sozlash

Hammaga salom. Biz WordPress saytini tezlashtirish mavzusini davom ettiramiz. Maqolada biz fayllardan keraksiz narsalarni olib tashladik, lekin hali hammasi emas. Umuman olganda, WordPressning yaxshi tomoni shundaki, u kodni o'zingiz xohlagan tarzda, turli istaklarga mos ravishda o'zgartirish imkonini beradi.

Xosting sotib olayotganda, albatta, siz sayt uchun qancha xotira kerakligini va yuk qanday bo'lishini taxmin qilasiz. Va agar sizning mablag'ingiz cheklangan bo'lsa, unda siz ushbu parametrlarni saqlashingiz kerak.

Dvigatelda bunday mexanizm mavjud - HeartBeat API. Nima uchun kerak? Bu nima?

HeartBeat API uchun javobgardir

  • avtomatik saqlash uchun;
  • u yerda biror narsani tahrirlayotganda boshqa barcha sayt ma'murlari uchun sahifa yoki postni bloklash uchun;
  • foydalanuvchining konsolda mavjudligi haqidagi ma'lumotlarni yangilash uchun.

Tushundingizmi, umid qilamanki, hozirda resurslar shunchaki yutib yuborilmoqda, chunki admin-ajax.php fayliga xosting uchun doimiy so'rovlar mavjud. Va agar siz bir vaqtning o'zida bir nechta administrator paneli yorliqlarini ochishni xohlasangiz, unda bu juda dahshatli. Jargon uchun meni kechir. So'rovlar har bir yorliq uchun avtonom tarzda yuboriladi.

Asosan HeartBeat API - bu WordPress dvigatelidagi eng ko'p resurs talab qiladigan mexanizm.

Sizga bunday mexanizm kerakmi? Albatta, har kim o'zi uchun qaror qiladi. Menga kerak emas.

Agar siz yagona ma'mur bo'lsangiz, shuningdek, hisobingizda etarli resurslar mavjud bo'lsa, uni o'chirib qo'yish mantiqiy deb hisoblanadi, lekin administrator konsolda bo'lsa, yuk sezilarli darajada oshadi.

Kuzatuvlarimga ko'ra, HeartBeat API-ni o'chirib qo'ygandan so'ng, mening saytimning egallagan hajmi deyarli 2,5 baravar kamaydi! Men jiddiy. Skrinshotni olmaganim achinarli, lekin asl holatiga qaytishni xohlamayman.

HeartBeat API-ni o'chirib, WordPress saytini qanday tezlashtirish mumkin

O'chirish; yopish HeartBeat API kod

Hammasi juda oddiy. Siz uni functions.php faylining boshiga tegdan keyin qo'shishingiz kerak

Add_action("init", "stop_heartbeat", 1); stop_heartbeat() funksiyasi ( wp_deregister_script("yurak urishi"); )

Va siz baxtli bo'lasiz.

Diqqat! Bu kod saytingizga mos kelmasligi mumkin. Bularning barchasi o'rnatilgan mavzuga, plaginlarga va sozlamalarga bog'liq. Siz sinab ko'rishingiz mumkin va agar kod saytning biron bir elementi bilan mos kelmasa yoki biror narsa buzilsa va ishlamasa, har doim hamma narsani qaytarishingiz mumkin. Faqat kodni o'chirib tashlang.

HeartBeat Control plagini

Kodlar bilan qulay emas va saytingizga zarar etkazishdan qo'rqasizmi? Siz uchun shunday yechim bor.

HeartBeat Control plaginini o'rnating (konsolda plaginlarni tanlang, yangisini o'rnating, plaginni qidiring, o'rnating va faollashtiring).

Sozlamalarga o'ting (konsolda Asboblar -> HeartBeat Control). Sozlamalarda siz quyidagi variantlarni tanlashingiz mumkin:

1. Butun sayt uchun HeartBeat-ni o'chirib qo'yish yoki uni ba'zi bo'limlar uchun ishlatish.

2. Siz admin-ajax.php fayliga so'rovlar chastotasini tahrirlashingiz mumkin va kerak. O'rnatishda u 15 soniya sifatida ko'rsatilgan. Agar siz, aytaylik, 30 soniyaga o'zgartirsangiz, ushbu so'rovlar uchun resurs iste'moli 25% ga kamayadi! Va agar siz vaqtni ko'proq oshirsangiz, undan ham ko'proq. Ta'sirli, to'g'rimi?

Diqqat!

  • HeartBeat API-ni o'chirib qo'yish avtomatik saqlash xususiyatini o'chiradi. Vaqti-vaqti bilan sahifalar va yozuvlarni tahrirlashda (kerak bo'lganda) saqlang.
  • HeartBeat API-ni o'chirish ma'lum bir shablonda sodir bo'ladi. Agar shablonni o'zgartirsangiz, hamma narsa yana bajarilishi kerak.
  • Agar siz joriy mavzuni yangilagan bo'lsangiz, yangilanishdan keyin o'chirishni takrorlash kerak.

Hammaga omad!

2016-05-05T09:48:44+00:00 Umid WordPress wordpressni qanday tezlashtirish mumkin

Hammaga salom. Biz WordPress saytini tezlashtirish mavzusini davom ettiramiz. Maqolada WordPressni CSS, HTML va Javascript-ni minimallashtirish orqali qanday tezlashtirish mumkin, biz fayllardan keraksiz narsalarni olib tashladik, lekin hammasi emas. Umuman olganda, WordPressning yaxshi tomoni shundaki, u kodni o'zingiz xohlagan tarzda, turli istaklarga mos ravishda o'zgartirish imkonini beradi. Xosting sotib olayotganda, albatta, siz ...

Nadejda Trofimova [elektron pochta himoyalangan] Administrator blogi sayti

Sizni ham qiziqtirishi mumkin:

Veb-sayt uchun Favikonni qanday qilish kerak

Favikon - bu brauzerda sayt nomi yonida hamma ko'radigan chiroyli belgi. Favicon sizning saytingizga brauzer xatcho'plarida ham,...

Sayt uchun chiroyli tugmalar

Hammaga xayrli kun. To'satdan o'z veb-saytida chiroyli tugmachalarni joylashtirishni xohlaydigan odamlar bor, lekin ularni topa olmaydi. Aslida, men qidiruv tizimlarida harakat qildim ...

Misol 404 sahifalar

Salom, mening blogimning aziz o'quvchisi. Ushbu maqola mutlaqo hech narsa haqida emas, men nihoyat 404-sahifaga yaqinlashdim.

Sarlavha va Tavsif teglari qanday va qayerda yoziladi

Sarlavha va tavsif teglari nima? Ushbu teglar saytingizni optimallashtirish uchun zarurdir. Agar teglar noto'g'ri yozilgan bo'lsa, qidiruv tizimlari maqolangizni indekslamaydi. Juda ko'p...

Yaxshiroq SEO va foydalanuvchi tajribasi uchun mutaxassislar har doim oxirgi foydalanuvchi uchun tavsiya qiladilar. Shu nuqtai nazardan, agar sizning saytingizga tashrif buyuradigan ko'plab foydalanuvchilar bo'lsa, WordPress boshqaruv paneli javob berishda sekin bo'lishi mumkin.

Onlayn tezlikni sinab ko'rish vositalaridan foydalangan holda WordPress saytingiz tezligini sinab ko'rayotganda, siz faylni payqagan bo'lishingiz mumkin admin-ajax.php sekin yuklash tajribasi uchun javobgar. Ushbu maqolada biz ushbu fayl haqida va admin-ajax.php tomonidan yaratilgan so'rovlar sonini kamaytirish orqali serverning javob vaqtini va protsessordan foydalanishni qanday kamaytirish mumkinligini tushuntiramiz.

WordPress-da admin-ajax.php nima?

2013-yilda WordPress WordPress Heartbeat API-ni taqdim etdi, bu bir nechta muhim xususiyatlarni taqdim etdi, masalan, kirish muddati tugaganda avtomatik saqlash funksiyasi va boshqa foydalanuvchi WordPress-da post yozayotgan yoki tahrirlayotganda taqiqlash haqida ogohlantirish.

Heartbeat API-ning ikkita o'ziga xos xususiyati:

1. Avtomatik saqlash

Post qoralamasini saqlaganingizda va u ustida ishlashda davom etsangiz, WordPress post qo‘shimchalaringizni avtomatik ravishda saqlaydi. Loyihani avtomatik saqlash va qo'lda saqlash o'rtasida aniq farq bor. Ikkala turdagi saqlashni ko'rsatadigan quyidagi skrinshotni ko'rib chiqing:

2. Xabarni bloklash

Boshqa foydalanuvchi ustida ishlayotgan postni tahrir qilmoqchi bo'lganingizda, vaziyat haqida ogohlantirish paydo bo'ladi. Siz uchun uchta amal mavjud.

Yuqoridagi funksiyalar WordPress Heartbeat API yordamida amalga oshirilgan bo‘lib, u tegishli xabar va javoblar uchun server va brauzer o‘rtasida aloqa o‘rnatadi.

WordPress Heartbeat API server bilan bog'lanish uchun so'rovlarni yaratadi va ma'lumotlarni qabul qilish/javob berish uchun hodisalarni ishga tushiradi. Bu odatda serverdagi yukni oshiradi va natijada WordPress boshqaruv panelini sekinlashtiradi.

Jonli misol

Biz WordPress boshqaruv paneliga kirdik va postni tahrirlashni boshladik. Keyinchalik, biz yorliqni bir necha daqiqa ochiq qoldirdik va boshqa yorliqlarni ko'rishni boshladik. Ko'rsatkich paneli hali ham tizimda va siz buni ko'rishingiz mumkin admin-ajaxdoimiy ravishda so'rovlar yuboradi.

Yuqorida aytib o'tilgan chiptaga ko'ra, WordPress-dagi admin-ajax.php har 15 soniyada so'rovlar hosil qiladi. So'rov serverga har qanday ulanish bo'lishi mumkin.

WordPress boshqaruv panelini tezlashtiring

WordPress backend-ni tezlashtirish uchun eng yaxshi yondashuv Heartbeat API-ni o'chirib qo'yish yoki hech bo'lmaganda serverga bir necha soniyalarda so'rovlar yaratmasligi uchun uni uzoqroq vaqtga sozlashdir.

Heartbeat Control plaginini o'rnating

WordPress administratoringizga kiring va o'ting Plaginlar >> Yangisini qo'shish, toping Yurak urishini nazorat qilish, o'rnatish Va faollashtirish uning.

Yorliqga o'ting Sozlamalar >> Yurak urishi sozlamalarini boshqarish. U erda siz plaginni sozlash uchun uchta ochiladigan menyuni topasiz.

Siz Heartbeat API ishlaydigan hududni tanlashingiz mumkin. Tanlash uchun uchta variant mavjud:

  • WordPress boshqaruv paneli: Bu WordPress boshqaruv panelidagi Heartbeat API-ni yoqadi.
  • Foydalanuvchi interfeysi: Bu veb-interfeysda API-ni yoqadi.
  • Xabar muharriri: Agar siz Heartbeat API-ga pochtani avtomatik saqlash va bloklash funksiyalarini yoqishiga ruxsat berishni istasangiz, ushbu katakchani belgilang.

Agar siz WordPress Heartbeat API-ni ma'lum joylarda o'chirib qo'yishni istasangiz, ushbu parametrni tanlang. Joyni tanlashda ehtiyot bo'ling, chunki boshqa plaginlar ham WordPress Heartbeat API-dan foydalanishi mumkin. Agar siz WordPress backend-ning yagona foydalanuvchisi bo'lsangiz, men uni hamma joyda o'chirib qo'yishni va keyin veb-saytni buzadimi yoki yo'qligini tekshirishni maslahat beraman. Biroq, agar sizning saytingizda muntazam ravishda hissa qo'shadigan bir nechta foydalanuvchi bo'lsa, biz faqat postni tahrirlash sahifalarida Heartbeat API-ni yoqishingizni tavsiya qilamiz.


Ushbu ochiladigan menyu sizga administrator Ajax so'rovlarini bajarish uchun 0 - 300 soniya oralig'ida vaqt oralig'ini belgilash imkonini beradi. Agar siz uni o'rnatsangiz 120 soniya, keyin so'rov har 120 soniyada yaratiladi. Bu serverdagi yukni sezilarli darajada kamaytiradi. Uni ehtiyojlaringizga moslashtiring.

Bir nechta qoidalarni yaratish

Sizning talablaringiz asosida bir nechta qoidalar yaratishingiz mumkin. Misol uchun, siz WordPress har 120 soniyada ishga tushishini xohlaysiz, lekin 60 soniya davomida olovni tahrirlaganingizdan so'ng. Buning uchun siz ikkita qoida yaratishingiz kerak. Biri WordPress asboblar paneli uchun, ikkinchisi esa post muharriri uchun va ularning chastotasini mos ravishda 120 va 60 ga o'rnating.

Endi sizda hamma narsa sozlangan, admin-ajax.php fayli yordamida qaysi plaginlar veb-saytingizni sekinlashtirayotganini tekshirish vaqti keldi.

GTmetrix-ga o'ting, saytingiz URL manzilini kiriting. Saytni tahlil qilish uchun bir necha daqiqa vaqt ketadi. Shundan so'ng, "Palalosa" yorlig'iga o'ting va faylning ulanishlar va javob uchun qancha vaqt ketishini ko'rasiz. Bir oz pastga aylantiring va kirish mavjudligini tekshiring POST admin-ajax.php. Ha bo'lsa, uni kengaytiring va "Post" yorlig'iga o'ting. Bu erda siz aybdorni aniqlashingiz mumkin. Bizning holatda, "ish stolini almashtirish" plagini admin-ajax.php faylidan foydalanadi va doimiy ravishda serverga so'rovlar yuboradi. Bu uni boshqa plagin bilan almashtirish yoki olib tashlash to'g'risida qaror qabul qilish vaqti.

Yakuniy so'zlar

Xususiyatlar to'plamini hisobga olgan holda, Heartbeat API sizning WordPress saytingizda juda foydali. Biroq, agar u to'g'ri ishlatilmasa, WordPress backendida va saytning o'zida yuklash vaqtini oshirishi mumkin, WordPress-ga so'rovlarni oldinga va orqaga yuborishi mumkin.

Bu muammoning faqat ikkita yechimi bor. Yoki Heartbeat API-ni o'chiring/faqat bir nechta joyda yoqing.

Agar siz W3TC kabi har qanday keshlash plaginidan foydalansangiz, ob'ekt keshini o'chirib qo'yganingizga ishonch hosil qiling. Bu sizning WordPress boshqaruv panelini ham tezlashtiradi.

Agar sizda biron bir taklif yoki so'rov bo'lsa, quyida sharh qoldiring.

WordPress bilan ishlashda keng tarqalgan stsenariy admin-ajax.php dan foydalanishning ortishi tashxisidir. Agar siz WordPress bilan bir muncha vaqt ishlayotgan bo'lsangiz, uchinchi tomon tezlik testlarini o'tkazayotganda yoki serverga kirish jurnallarini tekshirishda ushbu muammoga duch kelgan bo'lishingiz mumkin. Odatda admin-ajax.php dan ko'proq foydalanish uchinchi tomon plaginlaridan foydalanish yoki Heartbeat API asosida boshqaruv panelidan tez-tez keshlab bo'lmaydigan so'rovlar (masalan, qoralamalarni avtomatik saqlash) bilan bog'liq. Admin-ajax.php ga xitlardagi bunday yuqori ko'rsatkichlarni darhol aniqlash juda muhim, chunki ular sayt mavjud bo'lmasligiga olib kelishi mumkin. WordPress-dagi admin-ajax.php muammolarini bartaraf etish bo'yicha quyidagi tavsiyalarni ko'rib chiqing.

admin-ajax.php fayli nima?

Admin-ajax.php faylining o'zi to'g'ri ishlatilsa yomon emas. U yadroning bir qismi sifatida ishlaydi. Fayl WordPress ishlab chiqish jamoasi tomonidan 3.6-versiyasida qo'shilgan. admin-ajax.php ning maqsadi AJAX yordamida brauzer va server o'rtasida aloqa o'rnatishdir. Bu takomillashtirilgan avtomatik saqlash, versiyalarni kuzatish, tizimga kirishni kutish vaqti, sessiyani boshqarish va bir nechta mualliflar postni tahrir qilganda post blokirovkasi haqida bildirishnomalarni o'z ichiga olgan rivojlangan funksiyalarga imkon beradi. Bu xususiyatlarning barchasi, ayniqsa, bir nechta mualliflar va ma'murlar bilan saytlarni qo'llab-quvvatlaydigan foydalanuvchilar uchun juda yaxshi.

“Maqsad har 15 soniyada serverga XHR soʻrovlarini yuboradigan va maʼlumotlar qabul qilinganda hodisalarni (yoki qayta qoʻngʻiroqlarni) yuboradigan nisbatan oddiy APIni amalga oshirishdan iborat. Boshqa komponentlar, shuningdek, boshqa foydalanuvchilarning faoliyati haqida "ulanish" yoki bildirishnomalarni olish imkoniyatiga ega bo'ladi. Bu vidjetlar yoki menyularni bir vaqtda tahrirlashni yoki serverdan muntazam yangilanishlarni talab qiladigan boshqa vazifalarni bloklash uchun ishlatilishi mumkin."

Agar siz texnik jihatdan tushunarli foydalanuvchi bo'lmasangiz, admin-ajax.php kontekstida siz uchun muhim bo'lgan yagona holat bu fayl testlarda nima uchun sekinlashayotganini tushunishga harakat qiladi (masalan, Pingdomda). Yoki hostingga kirish jurnallarida ushbu fayl uchun soʻrovlar toʻplamini koʻrishingiz mumkin.

Tezlik sinovlari va kirish jurnallarida admin-ajax.php ko'rinishi odatda ikki xil stsenariyning natijasidir: biri frontendda, ikkinchisi esa orqa tomonda. Bu haqda keyinroq gaplashamiz.

Plaginlar admin-ajax.php ning sekinlashishiga olib kelishi mumkin

Admin-ajax.php kontekstida foydalanuvchilar duch keladigan eng mashhur muammo uchinchi tomon plaginlari tufayli yuzaga keladi. Bu odatda old tomonda ko'rinadi va tezlik testlarida namoyon bo'ladi. Ishlab chiquvchilar o'zlarining plaginlariga funksiya qo'shish uchun ushbu fayl yoki AJAX dan foydalanadilar. Siz admin-ajax.php ga so'rovni ko'rsangiz, bu saytni sekinlashtiradi degani emas. AJAX sahifa taqdim etilgandan keyin yuklanadi va ba'zi so'rovlar asinxron ravishda yuklanishi mumkin. Ammo bu har doim ham ishlab chiquvchi yuklab olishni to'g'ri bajargan va ishlash nuqtai nazaridan samarali kod yozgan degani emas.

Quyida admin-ajax.php dagi sekinlashuvlarni qanday tez tashxis qilganimizga misollar keltirilgan. Biz GTmetrix-dan foydalandik, chunki u bizga shaxsiy xabar va javob ma'lumotlarini tekshirish imkonini beradi. Pingdom, afsuski, bizga ma'lumotlar so'rovlarini shakllarda ko'rishga imkon bermaydi. Bundan tashqari, Google Chrome Devtools yoki WebPageTest dan foydalanishingiz mumkin.

Visual Composer plaginidan foydalanganda admin-ajax.php-ga yuqori yuk

Quyida admin-ajax.php dan foydalanganda juda yuqori kechikishlarni boshdan kechirgan WordPress saytimiz keltirilgan. GTmetrixdan ko'rinib turibdiki, admin-ajax.php ga so'rovlarning kechikishi 8 soniyadan oshadi. "Palapartishlik" ning qolgan qismi yaxshi ko'rinadi, ammo bu kechikish sayt egalari tomonidan hal qilinishi kerak.

Agar siz POST admin-ajax.php so'rovini bossangiz, siz quyidagi uchta yorliqni ko'rasiz: Sarlavhalar, Post va Javob. Biz ko‘rib chiqayotgan muammolarni tashxislashda bizni faqat “Post va javob” yorliqlari qiziqtiradi. Maslahatlarni Javoblar ko'rinishida ko'rish mumkin. Biz so'rovning bir qismi vc_shortcodes-custom-css skripti bilan bog'langanligini ko'ramiz.

Tez nusxa ko'chirish va Google-ga joylashtirish muammo Visual Composer plaginidan kelib chiqqanligini ko'rsatadi.

Foydalanuvchi uchun keyingi qadam Visual Composer plaginining to'liq yangilanganligini ta'minlashdir. Ha bo'lsa, plagin ishlab chiquvchilari bilan bog'lanishingiz va ularga admin-ajax.php bilan bog'liq muammo haqida xabar berishingiz kerak. Stack Overflow-dagi xabarlarga qaraganda, bu juda keng tarqalgan muammo. Agar ishlab chiquvchi buni o'z plaginida hal qila olmasa, har doim taxminan bir xil ishni bajaradigan bir nechta muqobil plaginlar mavjud - bu WP ning kuchi. Misol uchun, agar sizga sahifa quruvchilar kerak bo'lsa, Beaver Builder yoki Elementor-ni sinab ko'rishingiz mumkin.

Bildirishnomalar paneli plagini tufayli admin-ajax.php bilan yuqori kechikish

Biz duch kelgan ikkinchi misol uchinchi tomon plaginini o'rnatgandan so'ng sodir bo'ldi. Biz admin-ajax.php ga so'rovlar keskin oshganini sezdik.

Shunga qaramay, admin-ajax.php POST so'rovini bossangiz, hamma narsani batafsil o'rganishingiz mumkin. Maʼlumotlarda “action=mtsnb_add_impression&bar_id=88&ab_variation=none” qatori borligini koʻramiz.

To'g'ri, post harakatining birinchi qismi odatda plaginning CSS sinfiga ishora qiladi. Biz Google'da "mtsnb" so'zini tezda qidiramiz va bu sinf bizning saytimizda ishlayotgan Bildirishnomalar paneli plaginida ishlatilganligini aniqlaymiz.

Agar siz dasturchi bo'lsangiz, qaysi plagin POST javobini yaratishi mumkinligini kuzatishning boshqa usullari mavjud, ammo biz ushbu maqolada tasvirlangan usullarni juda samarali deb topamiz.

Admin-ajax.php so'rovlari manbasini aniqlashning eskicha usuli

Yuqorida biz WordPress saytida admin-ajax.php bilan ushbu muammoga olib kelishi mumkin bo'lgan plaginni topishning bir necha oddiy usullarini berdik. Bizning tajribamizga ko'ra, bu usullar 99% hollarda ishlaydi. Biroq, POST ma'lumotlari yoki harakatlari unchalik aniq bo'lmasligi mumkin va shuning uchun siz eski isbotlangan yo'ldan borishingiz kerak bo'ladi. WordPress saytingizdagi barcha plaginlarni o'chirib qo'ying. Tezlik sinovini o'tkazing. Agar admin-ajax.php hech qanday joyda topilmasa, har bir plaginni navbat bilan yoqing va tezlikni sinab ko'ring. Shunday qilib, muammoli plaginni tezda aniqlashingiz mumkin.

Backendda admin-ajax.php bilan protsessor muammolari

Ikkinchi asosiy muammo shundaki, WordPress Heartbeat API veb-brauzerdan AJAX qo'ng'iroqlarini ishga tushirish uchun admin-ajax.php dan foydalanadi, bu esa yuqori protsessordan foydalanishga olib kelishi mumkin. Har bir AJAX so'rovi, shuningdek, keshlashning barcha shakllarini chetlab o'tib, to'liq WordPress backendini yuklaydi. Odatda, buni tezlik testlarida ko'rmaysiz. Buni, ayniqsa, arzon umumiy xostingdan foydalanadiganlar uchun bilish juda muhim, chunki protsessor haqida gap ketganda, ularda ko'p harakatlanish joyi yo'q. Bu muammo avval HostGator hostingida yuzaga kelgan.

Siz juda ehtiyot bo'lishingiz kerak bo'lgan stsenariylardan biri bu WordPress-da avtomatik saqlash va ochiq tablar. Misol uchun, biz veb-saytimizda yangi loyihani ishga tushirdik va yorliqni ochiq qoldirdik. Heartbeat API sukut bo'yicha avtomatik saqlash uchun admin-ajax.php faylini har 15 soniyada so'raydi. Buni kirish jurnallarida ko'rish mumkin. Agar biz yorliqni bir kun ochiq qoldirsak, bitta post kuniga 5760 ta so‘rovni yaratishi mumkin edi.

Bu bir kishi uchun juda koʻp backend soʻrovlari. Agar saytingizda bir nechta muharrir bo'lsa, nima bo'lishini tasavvur qiling. Ushbu so'rovlar eksponent ravishda oshadi. Biz buni DARTDrones bilan olib borgan tadqiqotimiz davomida uchratdik, bunda biz Shark Tank uchun WooCommerce saytini kengaytirishga yordam berdik. Ularda admin-ajax.php ga kuniga 4100 dan ortiq qo'ng'iroqlar bo'lgan, holbuki bor-yo'g'i 2000 kishi tashrif buyurgan. Bizning tadqiqotimiz shuni ko'rsatdiki, so'rovlarning aksariyati konsoldan kelgan - ular ma'murlar saytni yangilash va uni namoyish qilish uchun tayyorlashlari sababli yaratilgan.

Avtomatik saqlash, qayta ko'rib chiqish, yozuvlarni blokirovka qilish va hokazolarda admin-ajax.php ga qo'ng'iroqlar bilan bog'liq ba'zi muammolarni aniqlashning bir usuli bor. Buning uchun siz Heartbeat Control plaginini o'rnatishingiz kerak.

Heartbeat Control plagini hozirda 50 000 dan ortiq saytlarda o‘rnatilgan va reytingi 5 dan 5 ga teng. Yangilanganiga 2 yil bo‘ldi, biroq u hali ham xuddi shunday ishlaydi, chunki Heartbeat API ham yangilanmagan.

Plagin bir necha marta bosish orqali WordPress Heartbeat API-ga qo'ng'iroqlar chastotasini boshqarish imkonini beradi. Birinchi variant yurak urishi o'rnini nazorat qilish imkonini beradi - masalan, uni hamma joyda o'chirib qo'ying yoki faqat postni tahrirlash sahifalarida ruxsat bering. Biz oxirgi variantdan foydalanishni tavsiya qilamiz, chunki plaginni butunlay o'chirib qo'yish Heartbeat API-ga bog'liq bo'lgan ba'zi plaginlarning ishlamay qolishiga olib kelishi mumkin.

Ikkinchi variant esa ovoz berish chastotasini belgilash imkonini beradi. 15 soniyadan 60 soniyagacha o'zgartirish so'rovlar sonini sezilarli darajada tejash va server resurslarini tejash imkonini beradi (protsessor yukini kamaytirish).

Bundan tashqari, yurak urishini o'chirish, so'rov chastotasini o'zgartirish va avtomatik saqlash oralig'ini o'zgartirish uchun perfmatters kabi premium plagindan foydalanishingiz mumkin.

Xulosa

Ko'rib turganingizdek, admin-ajax.php bilan bog'liq muammolarni aniqlash va tuzatish uchun bir nechta tez va oson variantlar mavjud. Odatda, ular bir-biriga zid bo'lishi mumkin bo'lgan yoki yomon kod bazasiga ega bo'lgan uchinchi tomon plaginlari tufayli paydo bo'ladi.

Veb-saytingizda bu muammoga duch keldingizmi? Agar shunday bo'lsa, iltimos, hikoyalaringizni baham ko'ring.

Dunyodagi eng mashhur bepul CMS foydalanuvchilariga foydali maslahatlar oqimi tugamaydi. Aynan mashhur bo'lgani uchun va eslash muhim bo'lgan xususiyatlarga ega. Oldin biz qanday qilib haqida gaplashdik:

Bugun biz ikkinchi mavzuni biroz kengaytiramiz va juda ko'p resurs talab qiladigan WordPress mexanizmini o'chirib qo'yamiz va hamma ham WordPress mexanizmiga muhtoj emas. HeartBeat API.

HeartBeat API— Quyidagi kabi narsalarni taqdim etadigan WordPress funksiyasi:

  • Avtomatik saqlash;
  • Post yoki sahifa bir kishi tomonidan tahrirlanganda boshqa sayt muharrirlari uchun post yoki sahifani bloklash;
  • Foydalanuvchi hali ham ma'muriy qismda (konsol) ekanligi haqidagi ma'lumotlarni yangilang.

U buni brauzeringiz (saytni tahrir qiladigan joy) va server (sayt saqlanadigan) o'rtasidagi aloqani saqlab turish orqali amalga oshiradi.

Aslida, bu ma'muriy panelning deyarli har qanday sahifasidan ma'lum bir admin-ajax.php fayliga 15-30 soniya (o'rnatilgan versiyaga qarab) oraliq bilan doimiy so'rovlarda ifodalanadi. Agar siz bir vaqtning o'zida bir nechta konsol yorliqlarini ochiq saqlashni afzal ko'rsangiz, vaziyat yomonlashadi: so'rovlar har bir varaqdan avtonom tarzda yuboriladi. Aslida, HeartBeat API barcha standart WordPress mexanizmlari ichida eng ko'p resurs talab qiladi.

Bugun biz bu funktsiyani o'chirib qo'yamiz. WordPress saytingiz uchun HeartBeat API-ni o'chirib qo'yish tavsiya etiladi, agar:

  • Umuman olganda, sizning saytlaringiz hisobingizda etarlicha resurslarga ega, sezilarli oshib ketishlar faqat konsolda ishlayotganda sodir bo'ladi;
  • Saytni faqat siz shaxsan tahrir qilasiz(ya'ni saytda bir nechta emas, 1 ta muharrir mavjud).

Diqqat! Ushbu yechim barcha saytlar uchun mos emas. Bu saytda o'rnatilgan mavzuga, plaginlarga va individual sayt sozlamalariga bog'liq. Siz uni sinab ko'rishingiz mumkin va agar u saytning biron bir elementi bilan mos kelmasa yoki siz uchun muhim bo'lgan sayt funksiyasiga ta'sir etsa, oldingi sozlamalarni qaytarish orqali har doim HeartBeat API-ni yoqishingiz mumkin.

HeartBeat API-ni qanday o'chirish mumkin

Buning uchun faylga o'zgartirishlar kiritishingiz kerak functions.php saytning joriy faol mavzusi (shablon) bilan papka ichida. Bu fayl menejerida yoki FTP orqali amalga oshirilishi mumkin.

functions.php fayliga yo'l quyidagicha ko'rinadi: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Tegdan keyin faylning eng boshida qo'shing

Add_action("init", "stop_heartbeat", 1); stop_heartbeat() funksiyasi ( wp_deregister_script("yurak urishi"); )

Ushbu chiziqlar butun sayt uchun HeartBeat-ni o'chirib qo'yadi.

HeartBeat Control plagini

Bundan tashqari, HeartBeat API-ni butunlay o'chirib qo'yishdan ko'ra kamroq radikal yechim mavjud. Bu maxsus plagin tomonidan taqdim etiladi Yurak urishini boshqarish. Uni o'rnating, faollashtiring va sozlamalarga o'ting (Asboblar -> HeartBeat Control). Sozlamalarda siz quyidagi variantlarni tanlashingiz mumkin:

1. HeartBeat-ni butun sayt uchun o'chirib qo'yish yoki uning faqat ma'lum bo'limlari uchun, masalan, ma'muriy paneldagi xabarlarni tahrirlash va nashr qilish sahifasi uchun foydalanishga ruxsat berish.

2. Admin-ajax.php fayliga so'rovlar chastotasi. Odatiy bo'lib 15 soniya bo'lishi mumkin - bu qiymatni, masalan, 60 soniyaga o'zgartiring va shu bilan Ushbu so'rovlar uchun resurslar sarfini 75% ga kamaytiring!

Nimani eslash muhim

  • HeartBeat API-ni o'chirib qo'yish orqali biz avtomatik saqlash funksiyasini o'chirib qo'ydik. Tahrirlangan sahifalar va xabarlarni vaqti-vaqti bilan saqlang (kerak bo'lganda).
  • HeartBeat API saytning mavzu (shablon) darajasida o‘chirilganligi sababli, mavzuni (shablonni) o‘zgartirishingiz bilanoq, HeartBeat API yana ishlaydi. Saytda foydalanishni boshlagan har bir yangi mavzu uchun o'chirish jarayoni takrorlanishi kerak bo'ladi.
  • Xuddi shu narsa joriy mavzuni yangilash uchun ham amal qiladi: yangilangandan so'ng, o'chirish jarayoni takrorlanishi kerak.

Sizga yoqimli ish tilaymiz!

Saytimni tobora qattiqroq taqillata boshlagan muammo meni ushbu postni yaratishga majbur qildi. Muammo sayt sahifalarini ochish va boshqaruv panelida ishlashdir. Ular shunchalik kuchli va tez-tez bo'lib qoldiki, hatto kichik xabarni yozish qiyin bo'ldi. Server bilan aloqa uzilib qoldi. Protsessorga yuqori yuk, ya'ni yumshoq chegaradan oshib ketish doimiy ravishda sodir bo'ldi; Men Metrica va Jetpack plaginidan tez-tez elektron pochta xabarlarini ola boshladim, bu sayt ko'pincha ishlamayotgan paytimda ham mavjud bo'lmasligini aytdi. Qisqasi, sayt tezligi muammosi bilan yana meni dahshatli dahshat bosib oldi. Va men yana "Gino" xostingidagi qo'llab-quvvatlash xizmatiga murojaat qildim.

Javob darhol keldi va kichik tushuntirishlar bilan keyingi suhbatlar orqali men muammolarning mohiyatini tushundim va ularni tuzatishga muvaffaq bo'ldim.

Xostingni qo'llab-quvvatlash birinchi navbatda e'tiborimni ko'plab so'rovlarga qaratdi /wp-admin/admin-ajax.php."So'rovlar saytning ma'muriy panelida harakatlar yaratadi. Plaginlardan biri to'g'ri ishlamasa, bu xatti-harakatlar odatiy hisoblanadi. Sayt plaginlarini birma-bir o'chirib qo'ying va uning ishlashini kuzatib boring. Muammoli plaginni topsangiz, uni yangilab ko'ring yoki barqaror versiyani o'rnating yoki uni muammo tug'dirmaydigan analog bilan almashtiring.”

Mening saytimda juda ko'p plaginlar o'rnatilgan va ularning har birini alohida tekshirish juda muammoli. Shuning uchun men plagin uchun texnik yordam qoldirgan havolaga e'tibor qaratdim Yurak urishini nazorat qilish. Uni o'rnatish va boshqa sozlamalar mening muammomni hal qildi!

Texnik qo'llab-quvvatlash xizmati yana bir muammoni ham ko'rsatdi va wp-cron.php faylidagi kodni tuzatish bo'yicha ba'zi qadamlar qo'yishni taklif qildi. Ammo xabar oxirida bu muammo haqida.

Xo'sh, endi yuqoridagilarning mohiyatiga o'tamiz.

WordPress-da Heartbeat API nima va uni qanday cheklash mumkin

"Yurak urishi" so'zi "yurak urishi" deb tarjima qilingan va u biron bir sababga ko'ra API uchun shunday nomlangan. U serverga so'rovlarning ma'lum chastotasini ta'minlaydi. Odatiy bo'lib va ​​administrator paneli sahifasiga qarab, bu turli vaqt oralig'ida sodir bo'ladi: yozuvlarni tahrirlashda - har 15 soniyada, Konsolda ishlaganda - bir daqiqa. WordPress Heartbeat API quyidagi xususiyatni ta'minlaydi:

  • Xabarlarni yaratishda avtomatik saqlash;
  • Post yoki sahifa bir kishi tomonidan tahrirlanganda boshqa sayt muharrirlari uchun postlar yoki sahifalarni bloklash;
  • Foydalanuvchi hali ham ma'muriy qismda bo'lgan ma'lumotni yangilang (konsol yoki postni tahrirlash sahifasi).

WordPres dvigatelida yozilgan ushbu funktsiya juda muhim, ayniqsa saytda bir nechta mualliflar ishlashi mumkin va ma'muriyat jamoaviy bo'lsa. Biroq, bu saytning sekinlashishiga va serverdagi yukni sezilarli darajada oshirishiga ham olib kelishi mumkin.

Agar siz saytning yagona muallifi bo'lsangiz, u holda Heartbeat API funksiyasi butunlay o'chirib qo'yilishi yoki serverdagi yukni tartibga solish imkonini beruvchi siz uchun qulay rejimga sozlanishi mumkin.

Heartbeat API to'liq o'chirildi

Men qilishni istamagan bu qiyin stsenariy shuki, siz hozirda saytda o'rnatilgan mavzuingizning functions.php faylida ba'zi operatsiyalarni bajarishingiz kerak.

Add_action("init", "stop_heartbeat", 1); stop_heartbeat() funksiyasi ( wp_deregister_script("yurak urishi"); )

Albatta, ushbu mavzuni yangilash yoki uni boshqasiga almashtirishda siz ushbu operatsiyani qayta bajarishingiz kerak bo'ladi.

Heartbeat Control plagini va uning sozlamalari

Faqat ikkita sozlamalar mavjud va plagin ingliz tilida bo'lishiga qaramay, bu tilni bilmaganlar uchun ularni tushunish qiyin bo'lmaydi. Plaginni sozlashni eslatib o'taman standartdan foydalaning Bu shuni anglatadiki, Heartbeat API hech qanday sahifada o'chirilmagan va serverga so'rovlar oralig'i 15 soniya. Ya'ni, bu plagin saytingizda yo'qdek hamma narsa ko'rinadi.

4. Administrator paneli sahifalari uchun sozlamalardan foydalanish

Aniqlik uchun men aniqlik kiritaman:

1. sukut bo'yicha foydalaning - sukut bo'yicha Heartbeat API dan foydalaning;
2. hamma joyda o'chirib qo'ying - hamma joyda Heartbeat API-ni o'chiring;
3. asboblar paneli sahifasida o'chirish — asboblar paneli sahifasida (konsol) Heartbeat API-ni o'chirib qo'ying;
4. post tahrirlash sahifalaridan onli-ga ruxsat berish - sahifalarni tahrirlashda faqat Heartbeat API-dan foydalaning.

2. Serverga so'rovlar chastotasini sozlash

Bu erda hamma narsa juda oddiy. Siz faqat shimolga tegishli so'rovlar oralig'ini tanlashingiz kerak. "Zarb" qanchalik kam bo'lsa - so'rovlar qanchalik kam bo'lsa - serverga yuk kamroq bo'ladi.

Sozlamalarni amalga oshirgandan so'ng, o'zgarishlarni saqlang.

Yozuvlarni tahrirlash paytida avtomatik saqlash istalgan funktsiya bo'lib qolmoqda (keyinchalik keraksiz tahrirlarni maxsus plaginlar yordamida tozalash orqali o'chirib tashlashingiz mumkin) va biron bir texnik sababga ko'ra deyarli tugallangan yozuvni yo'qotish yoqimsiz (internet yo'qolishi yoki serverga ulanish va hk.). ) juda istalmagan. Shuning uchun, maydondagi birinchi blokni sozlash "standart foydalanish" rejimiga o'rnatilishi mumkin, ammo so'rov chastotasi taymerini admin-ajax.php fayliga o'rnatganligi sababli, ikkinchi blokda sozlamalarni o'rnatish uchun etarli bo'ladi. . V 60 sek. ushbu so'rovlar uchun resurslar sarfini 75% ga kamaytiradi!

Albatta, veb-saytlar sekinlashishiga ko'p sabablar bor. Tegishli bilim va ular bilan ishlamasdan, biz bunday juda istalmagan jarayonlarga nima sabab bo'lishini bilmaymiz. Ehtimol, biz tez-tez mutaxassislar bilan bog'lanishimiz kerak, shu jumladan texnik yordam hosting.

Maqolaning boshida men yordamchi ishchilar mening saytlarimning ishlashidagi qiyinchiliklarning yana bir sababini e'tiborga olishganini aytib o'tdim. Sabab -

Wp-cron.php faylidagi kiruvchi jarayonlar

Texnik qo'llab-quvvatlash mening saytlarimning ishlashini o'rganish natijasida ularda "wp-cron.php jarayonlari kuzatilganligini" payqashdi. Ular tavsiya qildilar: "Agar ushbu faylni ishga tushirish serverda nosog'lom yukni keltirib chiqarsa - bu vazifalarni o'chirib qo'yishingiz mumkin."

  1. Buni WordPress konfiguratsiya faylida qilish uchun wp-config.php qatorni qo'shing:
    define('DISABLE_WP_CRON', 'rost');
    Tilni o'rnatganingizdan so'ng uni biror joyga qo'shishingiz mumkin, ya'ni. qatordan keyin
    aniqlash('WPLANG', 'ru_RU');
  2. Yana bir yechim faylning o'zida wp-cron.php qatorni izohlang: wp-cron.php ignore_user_abort(true); Buni amalga oshirish uchun uning oldiga ikki tomonlama chiziq qo'yishingiz kerak. Bu shunday bo'ladi: //ignore_user_abort(to'g'ri); Bu qator faylning 12-qatorida joylashgan.

Hammasi shu, do'stlar.

(304 marta tashrif buyurilgan, bugun 1 tashrif)