Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
wp-ajax

AJAX tradicional vs AJAX moderno, comparativa de rendimiento

En las dos entradas anteriores veíamos dos formas de hacer AJAX en WordPress. Las dos son perfectamente válidas, pero en este post quiero hacer una comparativa de rendimiento, ya que hoy en día el WPO representa uno de los pilares básicos a tener en cuenta en cualquier desarrollo web.

Las pruebas son muy sencillas, y la base con la que se han hecho es la siguiente

  • Una instalación básica de WordPress en su versión 5.1 en un entorno local
  • El tema por defecto twentynineteen
  • Ningún plugin instalado. La funcionalidad necesaria para hacer las pruebas se ha añadido al functions.php
  • Los tiempos que se comentan a continuación son en base a una media truncada de 10 intentos para cada modo.
  • Sin tráfico
  • Resumiendo, el entorno es MUY favorable
 

Tradicional vs Moderno

El tiempo medio que tarda una petición tradicional es de 53ms. Es un tiempo realmente bueno, pero recuerdo que el entorno es muy favorable:

admin-ajax
admin-ajax

Por el contrario, una petición utilizando REST y Fetch API, de media se realiza en 45ms.

fetch api
REST API

La mejora es apenas de 8ms, pero probablemente en un entorno real, con tráfico, con temas y plugins que añaden más peticiones y más peso, con multitud de contenidos en base de datos, y sobre un supuesto más complejo que el simple hecho de listar unos posts… la diferencia sea más notable.

Otro punto a tener muy en cuenta es que en una llamada tradicional al admin-ajax.php se cargan más archivos de WordPress para que funcione la petición, y pasa por más hooks que en una llamada a un endpoint de la REST API. Todo esto desemboca en ejecutar más funciones y procesos.

Por internet podrás encontrar multitud de sitios donde hacen estas comparativas con unos supuestos no tan benévolos como en este ejemplo, y todavía sin ser algo chungo y las diferencias alcanzan los 100-200ms.

Estamos hablando de un parpadeo, pero en WPO cualquier ganancia suma.

Puede que también te interese

WP-CLI Parte 8, Scaffold: genera esqueletos de código para post types, taxonomías, plugins, child themes…
WP-CLI Parte 8, Scaffold: genera esqueletos de código para post types, taxonomías, plugins, child themes…
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Cómo definir una plantilla diferente por categoría para el detalle de los posts
Cómo definir una plantilla diferente por categoría para el detalle de los posts
En WordPress se usa la plantilla single.php para el detalle de los posts. Podemos crear plantillas para los posts de un custom post type concreto…
Oculta las notificaciones de plugins y temas en WordPress
Oculta las notificaciones de plugins y temas en WordPress
Es posible que te hayas encontrado alguna vez o tengas un sitio creado con WordPress que tenga multitud de plugins instalados, o algún cliente que…
Añadir un icono personalizado a nuestro custom post type
Añadir un icono personalizado a nuestro custom post type
La versión 3.8 de WordPress trajo consigo nuevas mejoras, el tema Twentyfourteen, y un cambio completo de diseño en el Back End. Con éste cambio,…