Ajax занимает 10 раз, если он должен /мог

Я только что ударил свою первую серьезную проблему с помощью WordPress, и для тех, кто пользуется Ajax, это большая проблема.

У меня есть запрос Ajax, который занимает 1,5 секунды, чтобы завершить работу с использованием API Ajax.

Если я беру тот же точный код и запускаю его с помощью специального скрипта (без WordPress), запрос Ajax занимает всего 150 миллисекунд. Это не преувеличение

Если вы посмотрите на первый комментарий http: //wp.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/ и последующий разговор, вы увидите, что эта медлительность вызвана тем, что по вашему запросу, весь WP загружен ...

Я надеюсь, что есть решение, которое позволит делать запросы Ajax, не загружая все WordPress.

Каковы ваши впечатления от ускорения запросов Ajax с помощью WordPress?

47 голосов | спросил Mike 9 FebruaryEurope/MoscowbThu, 09 Feb 2012 23:45:53 +0400000000pmThu, 09 Feb 2012 23:45:53 +040012 2012, 23:45:53

2 ответа


52

Да, это неприятная проблема, когда у вас есть полная среда WordPress, вам нужно потратить значительное время на ее загрузку.

Мне нужна была намного лучшая производительность (для очень динамичной инкрементной функции поиска) для работы и с которой я работал:

  1. Пользовательский файл как обработчик Ajax.
  2. константа SHORTINIT для ограниченной нагрузки основного ядра WP.
  3. Очень выборочно загруженные части ядра, только те, которые необходимы для задачи.

Это обеспечивает очень ограниченную среду, но производительность является лучшим способом, и разумная степень совместимости с WP (начиная с $ wpdb) сохраняется.

Здесь запустится файл моего загрузчика, но не очень, но работает для особых нужд:

& л;? PHP

ini_set ('html_errors', 0);
define ('SHORTINIT', true);

require '../../../../wp-load.php';
require (ABSPATH. WPINC. '/formatting.php);
require (ABSPATH. WPINC. '/meta.php);
require (ABSPATH. WPINC. '/post.php');
wp_plugin_directory_constants ();

//материал идет здесь
ответил Rarst 10 FebruaryEurope/MoscowbFri, 10 Feb 2012 00:12:09 +0400000000amFri, 10 Feb 2012 00:12:09 +040012 2012, 00:12:09
0

Я нашел это, и это ускорило мой ajax.

function my_deregister_heartbeat () {
    глобальный $ pagenow;

    if ('post.php'! = $ pagenow & 'post-new.php'! = $ pagenow) {
         wp_deregister_script ( 'биения');
         wp_register_script ('heartbeat', false);
     }
}
add_action ('admin_enqueue_scripts', 'my_deregister_heartbeat');
ответил Lisa Daugherty Thompson 13 J000000Sunday14 2014, 17:20:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132