Uso de cookies en WordPress, Parte II: Busting de caché con AJAX

El memor en caché hace que todo sea más difícil. Si escribe un buen código y luego usted y los clientes, sus colegas, etc. Usted no ve absolutamente ningún resultado, el problema suele ser memorizando en caché. De hecho, una cita citada con amor de Phil Karlton afirma que “solo hay dos cosas difíciles en la informática: la invalidación de caché y el nombre de las cosas”. El desafío: la memoria de toda la página en caché, por lo que está claro que el artículo de la semana pasada sobre la escritura de cookies PHP en WordPress tiene un gran asterisco en el almacenamiento de caché. En particular, la memoria de caché de toda la página que hace que nuestro sitio sea rápido (es la memoria dinámica de SiteGround SuperCacher, que nos gustan) también hace que las cookies no se tomen.
Para ser más específico, es posible guardar nuevas cookies en el servidor, pero el objeto HTTP $ _cookies no refleja esos cambios, porque el servidor no busca cambios: sirva un caché de toda la página, incluidos los encabezados. Esto se explica maravillosamente (y fue aclarado) en este artículo por Nick Davis. Entonces, después de un comentario perplejo (y confuso) sobre el artículo, tuve que desactivar la memoria dinámica en la memoria caché para que la demostración funcione, que, por supuesto, puede no ser funcional en un sitio que necesita almacenamiento en caché del página entera y cookies. No debe elegir uno u otro.
La solución: Ajax parece ser una solución que usa AJAX. AJAX es una forma de hablar directamente con su servidor web después de que su página está cargando, y luego actualice su página con los resultados de la conversación respectiva. Esto es exactamente lo que necesitamos para evitar un caché de página completa, porque nuestro problema es el siguiente: la nueva información de cookies se establece en el servidor, pero el servidor no los busca al crear la página. Por lo tanto, nos hundiremos en el servidor y obtendremos esta nueva información, utilizando AJAX. Una demostración de Lucumanation favorita: Enviar
Funciona mucho como la demostración de la semana pasada, pero:


No obliga a la actualización de la página.
Funciona con el almacenamiento de caché de la página (caché dinámico de SiteGround) activado en la página.
Nuestras fuentes Nuestra solución aquí es una elaboración del artículo de Nick Davis y un hermoso artículo de WP Engine sobre cookies y memorización en caché WordPress. También utilizamos una biblioteca de cookies JS simple, según lo recomendado por Paul Underwood. Este complemento está disponible en GitHub si desea explorar la fuente completa. Solo diremos fragmentos de él a continuación. El código PHP en comparación con la semana pasada, hacemos mucho menos en PHP. Ahora hacemos tres cosas:
1. Ponga los archivos JavaScript ADD_ACTION (‘WP_ENQUEUE_SCRIPT’, ‘WPSHOUT_COOKIE_SCRIPT’); Función wpshout_cookie_scripts () {wp_enqueue_script (‘wpshout-js-cookie-demo’, plugin_dir_url (__file__). ‘Wpshout-js-cokie.js’, array (‘jquery’, ‘cookie’)); wp_enqueue_script (‘cookie’, plugin_dir_url (__file__). ‘Cookie.js’, array (‘jQuery’)); / * Decir el archivo js donde Ajaxurl es */ wp_localise_script (‘wpshout-js-cokie-demo’, ‘ajaxurl’, array (‘url’ => admin_url (). ‘Admin-azax.php’,); } Este código atrae los dos archivos JS que necesitamos: Cookie.js, cookies externas de JavaScript; y WPShout-JS-Cookie-Demo.js, que se basa en Cookie.js. En nuestro caso, debemos hacer algo ordinario: dígale a nuestro script dónde debe indicar las solicitudes de AJAX. 2. Administre las solicitudes AJAX ADD_ACTION (‘wp_ajax_wpshout_get_food_cookie’, ‘wpshout_get_food_ocokie’); add_action (‘wp_ajax_nopriv_wpshout_get_food_cookie’, ‘wpshout_get_food_cookie’); función wpshout_get_fave_food_cookie () {$ cookie = $ _post [‘cookie’]; echo $ _Cookie [$ Cookie]; morir; } Este código realiza el procesamiento en el lado del servidor para nuestra solicitud AJAX. Lo que sí, en palabras, es buscar cierto miembro de la matriz superglobale $ _Cookie. Definimos qué miembro confiará en qué publicación en Ajax con el nombre de ‘Cookie’.
Una vez que se toma el elemento $ _cookie, este código regresa al JS que lo nombró usando Echo y luego detiene la ejecución.3. Registre los códigos cortos add_shortcode (‘js_cookie_demo’, ‘wpjcd_show_cookie_result’);función wpjcd_show_cookie_result () {ob_start ();echo ‘
‘;return ob_get_clean ();} Add_shortcode (‘js_cookie_form’, ‘wpjcd_show_ookie_form’);función wpjcd_show_cookie_form () {ob_start ();? “Cookies”>
Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *