web-dev-qa-db-fra.com

Quelle est la meilleure façon de mettre en œuvre AJAX dans WordPress?

WordPress a mis en place un cadre pour le traitement de AJAX qui est bien documenté ici: http://codex.wordpress.org/AJAX_in_Plugins

Ce qui me préoccupe, c’est que chaque fois que vous exécutez une requête AJAX (même si vous souhaitez renvoyer un seul champ à partir d’une table), ce cadre instancie l’ensemble de la pile WordPress, y compris les plugins et les fonctions de thème pouvant existent sur votre site. Cela me semble être une méthode assez lourde pour effectuer ce qui peut devenir une fonction assez simple.

Généralement, de nombreux sites WordPress fonctionnent sur un hébergement partagé et ne disposent pas de beaucoup de puissance de traitement. Par conséquent, sur la base de mes expériences, un temps de réponse de 2 secondes à un appel hébergé sur WordPress AJAX n'est pas rare. .

Des recommandations sur la manière d’améliorer ce temps de réponse?

1
Owen Cutajar

L’alternative brute à laquelle la plupart des gens ont recours est celle où vous ajoutez un fichier et incluez plusieurs niveaux. C’est sans doute pire pour la performance, si ce n’est pas aussi grave.

Mais il existe une variante qui fonctionne mieux si nous créons notre propre URL de point d'entrée AJAX et précisons:

define( 'SHORTINIT',true);

Ensuite, inclure l'environnement WordPress, nous pouvons ignorer la majorité du processus de chargement. C'est le chemin à suivre si vous voulez des demandes super zippy AJAX. L'inconvénient est que nous devons charger certaines choses nous-mêmes et que certaines étapes du processus de chargement ne sont jamais exécutées.

Voir cette réponse pour plus de détails Ajax prend 10x aussi longtemps qu'il le devrait/pourrait

1
Tom J Nowell