2012-01-03 25 views
7

He estado utilizando el siguiente código para cargar JQuery en todos mis proyectos. Lo agarré del http://html5boilerplate.com/. Existe una amplia difusión de esta técnica here.Usando el código de Html5boilerplate para cargar JQuery muy lento cuando se ejecuta localmente

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');</script> 

Este código funciona muy bien y parece bastante maldito rápido una vez lo he puesto arriba en el interwebs, pero cuando abro mi archivo .html localmente que se necesita ~ 10 segundos por cada actualización. En general, me canso y modifico el código de la siguiente manera:

<!-- uncomment when going live 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');</script>--> 

<!-- remove following line when going live --> 
<script src="jquery-1.7.1.min.js"></script> 

¿Me falta algo obvio aquí? Siento que no debería obtener los tiempos de carga súper lentos, pero se resuelve solo cuando comenta esas líneas.

Respuesta

11

supongo que no está sirviendo el código HTML a través de una Servidor web.

El // prefijo de la URL indica que se debe utilizar el mismo protocolo que el recurso actual (por lo general HTTP o HTTPS)

Puesto que usted no está sirviendo a través de http y en su lugar a través de un archivo, que está tratando de búsquelo en su sistema de archivos local, eventualmente agotando el tiempo.

La pestaña de red en cromo inspector muestra que intentar cargar el siguiente para mí:

archivo: //ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min. js
file: /// C:/Users/[mi nombre de usuario] /Documents/jquery-1.7.1.min.js

Se va a tratar de cargar esos tiempos y el sistema de archivos (o tal vez el navegador) finalmente expirará.

La forma correcta es la de servir a través de un servidor web, ya sea de IIS si estás en Windows o Apache, si estás en Linux/Mac (Apache también funciona en Windows, pero IIS tiene mejores herramientas de interfaz de usuario)

+0

su conjetura es correcta. –

+0

Supongo que ejecutarlo a través de XAMPP es la solución que estoy buscando, lo probaría ahora, pero la maldita cosa se rompió de alguna manera ;-) tengo que volver a instalarla cuando tenga la oportunidad. –

+0

@ZachL. si sirve el archivo a través de un servidor web en lugar de simplemente abrir el archivo, debería funcionar. – Davy8

1

Esta línea:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

Los intentos de encontrar jQuery en el sistema de archivos, lo que significa que va a tomar un tiempo para fallar. Al mirar la pestaña Red del panel de desarrolladores en Google Chrome, intenta buscar el archivo en file://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js. Luego, una vez que no ha podido encontrar el archivo, carga jQuery (y encuentra el archivo con éxito) usando la siguiente línea:

<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');

para remediar el problema, agregue a la https:src de su etiqueta de secuencia de comandos, así:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

+0

Parece que funcionará, pero ¿esto frustrará el punto de vista del enfoque independiente del protocolo? –