Directorio de artículos
¿Tienes dificultades para elegir el tipo de incrustación adecuado para W3 Total Cache Minify? Este artículo comparte la experiencia real de un administrador web y ofrece una guía paso a paso para seleccionar con precisión el tipo de incrustación de Minify correcto, evitando inconsistencias en el estilo del sitio web y fallos de carga. También incluye una solución de configuración infalible que incluso los principiantes pueden aplicar fácilmente.WordPress ¡Acelera sin chocar!
Estaba optimizando un sitio web y cuando abrí la configuración de minificación en W3 Total Cache, me quedé completamente perplejo. El menú desplegable para el tipo incrustado tenía cuatro opciones: Predeterminado (Bloqueo), Usar JS para no bloqueo, Usar "Asíncrono" para no bloqueo y Usar "Retrasado" para no bloqueo.
Lo pensé un momento, ¿de qué se trata todo esto?
Créeme, no estás solo. Estas cuatro opciones probablemente desconcertarán incluso a un principiante, y mucho más a alguien que lleva años usando WordPress. Este artículo presenta los problemas que he encontrado y las lecciones que he aprendido directamente. No necesitas consultar la documentación; solo sigue mis instrucciones.
¿Qué son exactamente estos cuatro tipos de incrustación?

Primero hablemos de qué tipo de personaje son estas cuatro opciones.
Predeterminado (Bloqueado)Esto se llama bloqueo por defecto. Es el método más sencillo: el navegador se detiene al encontrar un script, lo descarga y ejecuta por completo, y luego continúa mostrando la página. Suena fiable, ¿verdad? Pero la desventaja es que la carga inicial de la página se bloqueará; los usuarios tendrán que esperar a que el script termine de ejecutarse antes de poder ver nada.
Uso de JS para programación no bloqueanteEsto es bastante interesante. En lugar de escribir directamente etiquetas `<script>` en la página, primero genera un pequeño script y luego inyecta dinámicamente los scripts que deben cargarse en la página mediante JavaScript una vez que la página se está ejecutando. De esta manera, la página se renderiza primero y los scripts se cargan gradualmente. Suena genial, ¿verdad? Sin embargo, el problema es que este proceso de inyección dinámica podría alterar el orden de ejecución original de los scripts. Si algunos scripts de tu página dependen en gran medida del orden de ejecución, podrían surgir problemas.
Utilice "asíncrono" para operaciones no bloqueantes.Esto implica añadir el atributo `async` a la etiqueta `<script>`. El script se descargará de forma asíncrona en segundo plano y se ejecutará inmediatamente después de la descarga, sin que la página tenga que esperar. Sin embargo, la desventaja es que el orden de ejecución es completamente incontrolable; el script que termine de descargarse primero se ejecutará primero, independientemente del orden especificado en el código.
Uso de "retraso" para no bloqueoEsto es lo que significa añadir el atributo `defer`. El script esperará a que se haya procesado toda la página antes de ejecutarse y, lo que es más importante, mantendrá el orden original en que lo escribiste. Esto resulta muy práctico, ya que no bloquea la primera pantalla ni altera el orden.
¿Cuál debería elegir?
En pocas palabras, estas cuatro opciones son como una pregunta de opción múltiple:¿Prefieres rapidez o orden?
Mi sugerencia es la siguiente:
Si tu sitio web es pequeño, tiene pocos scripts y no tienes requisitos de velocidad de carga extremadamente altos, usar la configuración predeterminada (bloqueada) es la opción más sencilla. Aunque es un poco más lenta, no causará ningún problema.
Si quieres mejorar la velocidad de la primera pantalla y tus scripts no tienen fuertes dependencias como "A debe ejecutarse antes que B", prioriza...Uso de "retraso" para no bloqueo(aplazar). Esta es casi la solución más ideal en la actualidad, ya que no bloquea la renderización ni altera el orden.
Si intentas usar la opción de diferir y aún así encuentras que algunas funciones tienen problemas, entonces considera...Uso de JS para programación no bloqueanteEsta solución es más radical, pero su compatibilidad es ligeramente peor.
Utilice "asíncrono" para operaciones no bloqueantes.La opción (asíncrona) es la que menos recomiendo. Debido a que el orden de ejecución está completamente alterado, es fácil que el programa falle a menos que estés absolutamente seguro de que todos tus scripts se ejecutan de forma independiente.
Dos grandes trampas en las que caí
Hablar es fácil. He anotado dos errores que cometí; puedes compararlos con tu propia experiencia para ver si puedes evitarlos.
El primer inconveniente: los temas personalizados de WordPress no se pueden previsualizar en tiempo real.
Durante un tiempo, al personalizar un tema, después de hacer clic en guardar, la vista previa no se actualizaba. Hacía algunos cambios, actualizaba la página y seguía igual.
Tras investigar un poco, descubrí que la función de compresión de Minify era la culpable. La solución es sencilla:
Acceda al complemento W3 Total CacheConfiguración general,aparecer"compresión"Desmarca esa opción. Luego, haz clic en la pequeña flecha que aparece debajo de "Guardar configuración" en la esquina superior derecha y selecciona "...".Guardar ajustes y borrar cachéEste paso es crucial; si no borras la caché, seguirás viendo la versión anterior.
Una vez que hayas terminado, vuelve a la personalización del tema y la vista previa en vivo volverá a la normalidad.
El segundo problema: el cuadro de búsqueda del tema Astra no responde al hacer clic.
Me encontré con este problema hace bastante tiempo. Estaba usando el tema Astra y, de repente, el cuadro de búsqueda dejó de responder sin importar cómo hiciera clic en él. Al principio, pensé que era un problema del tema en sí, pero luego descubrí que se debía a la configuración de minificación de W3TC.
La solución es la siguiente:
Vaya a W3 Total Cache → Configuración general → Configuración avanzada de compresión → JS → Configuración del motor de minimización → Configuración regional y cambie el tipo de incrustación a uno de estos dos:
- Anteriormente, el funcionamiento sin bloqueo se lograba mediante JavaScript.
- Después, utilice JS para evitar bloqueos.
Del mismo modo, borrar la caché y actualizar la página permitirá que el cuadro de búsqueda funcione correctamente.
En cuanto a por qué se eligieron estas dos opciones en lugar de otras, investigué un poco. En resumen, los componentes de la interfaz del tema Astra son bastante sensibles al momento de ejecución de los scripts, y ciertos métodos no bloqueantes pueden provocar fallos en la vinculación de eventos. El uso del modo "no bloqueante con JS" garantiza que el script se ejecute solo después de que la página haya terminado de cargarse, evitando así la ejecución desordenada que se observa con la ejecución asíncrona.
落地清单
Por último, aquí tienes una lista de verificación que puedes seguir directamente:
El primer paso es definir tu objetivo. ¿Buscas la carga inicial de página más rápida o priorizas la estabilidad y un funcionamiento sin errores? Esto determinará qué tipo de incrustación debes usar.
El segundo paso consiste en no cambiarlo todo a la vez. Primero, busca una página menos importante para probarlo, obsérvala durante uno o dos días y solo implementa el cambio en todo el sitio si estás seguro de que no hay problemas.
En tercer lugar, borra siempre la caché después de cada modificación. El mecanismo de caché de W3TC te impedirá ver los últimos cambios, por lo que el paso de "borrar la caché y volver a probar" es absolutamente esencial.
En cuarto lugar, usa las herramientas para desarrolladores de tu navegador o herramientas como PageSpeed Insights para comparar la velocidad de carga antes y después. Deja que los datos hablen por sí solos, no te fíes solo de tu intuición.
Escribir al final
Sinceramente, cuando vi por primera vez esta configuración de tipo integrado, me quedé perplejo durante un buen rato. El modo de bloqueo predeterminado parecía demasiado lento, mientras que el modo asíncrono no garantizaba el orden y el aplazamiento podía causar problemas de compatibilidad. No sabía qué opción elegir.
Pero después me di cuenta de que es una cuestión de prioridades. No se puede tener lo más rápido y lo más estable a la vez; siempre hay que sacrificar uno. Mi experiencia me dice que primero uso `defer`, que actualmente es la solución no bloqueante más segura, y luego uso una función de devolución de llamada si surgen problemas.
Si encuentras problemas similares o si persisten otras dificultades después de seguir mi método, no dudes en comentarlo. El desarrollo web se basa en el método de prueba y error; nadie es la excepción.
Gracias por leer mi artículo. ¡Hasta la próxima!
Esperanza Chen Weiliang Blog ( https://www.chenweiliang.com/ El artículo "Configuración del plugin W3 Total Cache Minify: ¿Cómo elegir el tipo de incrustación? Mis errores y consejos para salvar vidas", que he compartido, puede resultarle útil.
Bienvenido a compartir el enlace de este artículo:https://www.chenweiliang.com/cwl-34003.html
