Я разрабатываю плагин для WordPress и сталкиваюсь с проблемами производительности, когда дело касается работы с REST API. Я зарегистрировал маршрут следующим образом (код внутри класса):
public function __construct()
{
add_action('rest_api_init', array($this, 'register_rest_load'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
}
public function register_rest_load()
{
//Versioned namespace
$namespace = 'scs/v1';
// Register the route
register_rest_route($namespace, '/load/(?P<id>\d+)', array(
'methods' => WP_REST_Server::ALLMETHODS,
'callback' => array($this,'loadProfile'),
'args' => array()
));
}
Функция «loadProfile» проходит через скрипт загрузки, который возвращает сообщения xhr внешнему ajax, в то время как он собирает данные из множества другихбазы данных. Поскольку это работает отлично, я не буду включать это здесь. Проблема, с которой я здесь сталкиваюсь, заключается в том, что если я сделаю несколько вызовов ajax на
"my-url.de/wp-json/scs/v1/load/[any_int_here]"
нав то же время, он обслуживает только 1 AJAX-вызов за раз. Но бывает так, что функция loadProfile занимает 3 минуты. Когда я перешел с собственного жесткого кода с прямым вызовом ajax (возможно 6 одновременных вызовов) на более безопасный WordPress REST (только 1 вызов), я потерял производительность. Я тоже пробовал WordPress ajax, но там тоже самое ... только 1 порция.
Есть ли какой-нибудь способ, которым я испортил создание маршрута и конечной точки? Могу ли я изменить свой маршрут и конечную точку для нескольких порций на клиента? Или я должен просто вернуться к ручному AJAX?
Спасибо, прежде чем. Если мне не хватает какой-либо информации, пожалуйста, не стесняйтесь спрашивать.