2010-12-27 8 views
5

¿Puedo usar JavaScript para verificar si JQuery ya se descargó (en caché) en el navegador web de destino (usuario) o no? Por ejemplo:Uso de Javascript para verificar de qué CDN jQuery se almacena en caché en el cliente

If (JQuery-from-Microsoft-CDN-downloaded) 
    Then use http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js 
Else if (JQuery-from-Google-APIs- downloaded) 
    Then use http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 
Else if (JQuery-from-code.jquery.com- downloaded) 
    Then use http://code.jquery.com/jquery-1.4.4.min.js 
Else use jQuery from my own website. 

significa que el uso de la capacidad de javascript para comprobar si uno de ellos se descarga en el usuario de destino (navegador web), si no, utilizar jQuery de mi propio sitio web de lo contrario si es cierto entonces utilizar esa versión de JQuery que se descarga en el usuario de destino.

+2

Pregunta interesante, pero no creo que esto sea posible con wi realmente no carga las bibliotecas. Aunque, podría ser factible usar una llamada Ajax y verificar si eso devuelve un '304 no modificado' ... Sin embargo, no estoy seguro si esto es práctico. –

+0

¿Cómo "descarga" un usuario algo en el navegador de destino? –

+0

@Luca quiere decir si la biblioteca en cuestión ya está en la memoria caché –

Respuesta

4

No puede hacer esto, otro caso en el que same-origin policy impide que cualquier mecanismo lo logre. Si lo piensas bien, tiene sentido ... cualquier mecanismo que puedas usar para lograr esto, puedes usar también para descubrir qué sitios visitó alguien, viendo qué archivos han almacenado en caché.

+0

Es mi idea utilizar el poder de javascript (del navegador web) para usar Librares en caché (por selección dinámica) –

+3

@Hazro - Entiendo su idea/objetivo , pero no es posible ... sería una violación a la privacidad grave si se permitiera algo así. Lamentablemente, no existe una forma genérica de hacer esto que * tampoco * permita que se use con fines maliciosos. –

0

Hay pocas maneras de comprobar si jQuery se carga

var isLoaded = (jQuery) ? true : false; 

o

var isLoaded = (typeof jQuery == 'undefined') ? false : true; 

Si el script se carga dentro de un mismo documento que jQuery incluido puede analizar DOM y comprobar si alguna de las Etiqueta SCRIPT que contiene el enlace a cualquiera de los CDN

var jQueryVersion = isLoaded ? jQuery.fn.jquery : false; 
+0

jQuery con número de versión? –

+0

sí, es posible – Nazariy

+0

Esto solo le indicará qué versión ha descargado de la URL de origen de la etiqueta de secuencia de comandos, no qué se ha almacenado anteriormente en caché desde otras páginas vistas – HorusKol

Cuestiones relacionadas