alejandro alcalde
Estoy tratando de cargar algunos de mis scripts desde CDN como CDNjs y Google. Los scripts se están cargando correctamente, pero por alguna razón no los encuentro, para cada script tengo dos o incluso tres solicitudes HTTP (para el mismo script), Aquí hay un ejemplo: http://tools.pingdom.com/fpt/#!/ePuR3Z/http://elbauldelprogramador.com.
He notado que cuando inicio sesión, todos los scripts generan solo una solicitud HTTP.
Jquery de ajax.googleapis genera dos solicitudes http y jquery.easing.min.js de cdnjs tres.
El código es:
//Making jQuery Google API
function modify_jquery() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js', false, '2.0.3');
wp_enqueue_script('jquery');
}
}
add_action('init','modify_jquery');
Tengo un tema hijo y de su padre he copiado una función llamada wi_enqueue(). En el padre la función es así:
add_action( 'wp_enqueue_scripts', 'wi_enqueue' );
if ( !function_exists('wi_enqueue') ) {
function wi_enqueue(){
/* ...*/
}
En mi child function.php tengo:
function wi_enqueue(){
global $wp_styles, $smof_data;
/* Enqueue */
wp_enqueue_script( 'wi-easing', '//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js', array('jquery'), '1.3', true );
wp_enqueue_script( 'wi-touchswipe', '//cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.4/jquery.touchSwipe.min.js', array('jquery'), '1.3.3', true );
wp_enqueue_script( 'wi-autosize', '//cdnjs.cloudflare.com/ajax/libs/autosize.js/1.17.1/autosize-min.js', array('jquery'), '1.17.1', true );
wp_enqueue_script( 'wi-placeholder', '//cdnjs.cloudflare.com/ajax/libs/placeholders/2.1.0/placeholders.min.js', array('jquery'), '2.1.0', true );
wp_enqueue_script( 'wi-modernizr', get_template_directory_uri() . '/js/modernizr.custom.15463.js', array('jquery'), '2.6.2', true );
wp_enqueue_script( 'wi-waypoint', '//cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.2/waypoints.min.js', array('jquery'), '2.0.2', true );
wp_enqueue_script( 'wi-tipsy', get_template_directory_uri() . '/js/jquery.tipsy.js', array('jquery'), '1.0.0', true );
wp_enqueue_script( 'wi-fitvids', get_template_directory_uri() . '/js/jquery.fitvids.js', array('jquery'), '1.0', true );
wp_enqueue_script( 'wi-sidr', get_template_directory_uri() . '/js/jquery.sidr.min.js', array('jquery'), '1.1.1', true );
/* .... */
}
Esto puede o no resolver su pregunta, pero tenía una muy problema similar hace un tiempo y pasé mucho tiempo tirándome de los pelos buscando una solución. Al final, resultó que algunos navegadores (Firefox es el más común de los culpables) obtienen previamente la siguiente publicación/artículo, incluidos JS y otros elementos de la página, en función de la <link rel="next" />
etiqueta.
Hay mucha más información sobre esto aquí: http://www.ebrueggeman.com/blog/wordpress-relnext-and-firefox-prefetching
Espero que esto ayude, si todavía tienes el problema.
SGrunClub.com
Si los scripts se cargan más de una vez, revise su código fuente y guárdelo una vez más. Luego, es posible que desee borrar el caché de su navegador para asegurarse de que el caché anterior se borre para que pueda ver el sitio web actualizado actual. Si sigue teniendo el mismo problema, puede que se deba a que su plantilla o wordpress no se han instalado/configurado correctamente.
Por lo tanto, le recomiendo encarecidamente que publique un hilo en wordpress.org si aún enfrenta el mismo problema. Espero que esto ayude.
Realmente no deberías hacerlo. Es una muy mala práctica. Por favor, simplemente abandone este método. No hay nada de malo con jQuery propio de wordpress (excepto para el uso de casos muy extremos).
– Obmerk Kronen
6 de enero de 2014 a las 1:42
@Andy, esto no es información errónea. Los CDN no funcionan igual en muchos países que en los EE. UU. o en Europa del Este. por ejemplo, en China (la tercera parte de los usuarios de Internet del mundo) Google CDN funciona esporádicamente, si es que lo hace. Cuando funcionan, los tiempos de carga de los sitios pueden aumentar en un 200%. Le sugiero que haga su tarea sobre el tema antes de acusar a otros de
"spreading around misinformation"
. Si fuera una solución tan buena, habría estado en el núcleo hace mucho tiempo. Sin mencionar el hecho de que en esta pregunta, el jQuery cargado desde Google NO está en modo sin conflicto,– Obmerk Kronen
26 de febrero de 2014 a las 18:39
@Andy alguno lectura material. Son 3 enlaces para una fácil lectura educativa. Y si no le cree a esos desarrolladores principales, creo que también puedo encontrar los comentarios de Matt Mullenweg sobre el tema.
– Obmerk Kronen
26 de febrero de 2014 a las 18:53
@Andy – HAZ lo que quieras. el punto es – Si tuviste un problema o no, NO PUEDES SABER. probablemente estés desarrollando pequeños sitios web locales y nunca intentaste verificarlos desde el extranjero. Como se dijo en el enlace de comentario anterior: no tiene idea de si su usuario tiene o no acceso a la CDN. No tienes idea de sus tiempos de carga. no tienes idea de los usuarios perdidos. El hecho de que
YOU
no tuve problemas no lo convierte en una buena práctica y no me hacespreading around misinformation
.– Obmerk Kronen
27 de febrero de 2014 a las 1:29
@Andy, un último comentario si te niegas a chatear: debes LEER los enlaces que publicaste. tambien me gustaria saber que
"misinformation"
Yo debería"stop spreading around like this"
( y como que.. ?? ).– Obmerk Kronen
27 de febrero de 2014 a las 9:47