Red de conocimiento informático - Conocimiento informático - ¿Qué pasa si se introducen 2 jqueries al mismo tiempo?

¿Qué pasa si se introducen 2 jqueries al mismo tiempo?

El método consiste en utilizar noConflict() de jQuery para permitir la captura de varias versiones.

Cuando importamos jQuery, jQuery solo inyecta dos variables en el espacio global de ventana:

Copia el código de la siguiente manera:

ventana.$ = ventana. jQuery = { jQuery object };

Al mismo tiempo, jQuery conserva las antiguas referencias a los objetos window.$ y window.jQuery internamente. Cuando llamamos:

Copia el código de la siguiente manera:

var $jq = $.noConflict();

window.$ se restaura, pero window. jQuery sigue siendo jQuery.

Cuando llamamos:

Copia el código de la siguiente manera:

var $jq = $.noConflict(true);

ventana .$ y window.jQuery se restauran. Excepto que jQuery está disponible a través de la variable $jq, todo parece como si jQuery nunca se importara.

Por lo tanto, jQuery que permite que las versiones antiguas y nuevas sobrevivan se puede implementar así:

Copie el código de la siguiente manera:

Con $jq en myscript.js ya es posible acceder a la versión 1.11 de jQuery.

En este punto, el problema está resuelto.

Sin embargo, introducir dos versiones de jQuery arruinará la página. ¿Qué pasa si alguien no entiende el código y elimina var $jq = jQuery.noConflict(true);? O, si intercambias las dos líneas que importan jQuery, no obtendrás la versión correcta de jQuery.

La mejor manera es mantener la página sin cambios y hacer referencia directamente al nuevo archivo js que escribimos:

Copie el código de la siguiente manera:

De esta manera, hacemos referencia en myscript.js usa la última versión de jQuery y a la página no le importa si usa jQuery o qué versión de jQuery usa.

Empiece a escribir una solución nueva y mejor. Primero, determine el cuerpo de myscript.js:

Copia el código de la siguiente manera:

// myscript.js

(function () {

// COMENZAR

// TODO: código javascript aquí...

// FIN

})();

El uso de funciones anónimas es una buena práctica ya que no contamina las variables globales y elimina el acceso al código externo.

El siguiente paso es incrustar el código jQuery 1.11 directamente:

Copie el código de la siguiente manera:

// myscript.js

(función () {

// COMENZAR

/*! jQuery v1.11.1 */

!función(a,b){"objeto" ==tipo de módulo&& " objeto"==tipo de módulo.exportaciones?...

if(k&&j[k]&&(e||j[k].data)||void 0!==d ||"cadena" ! =tipode b)return k||(k=...

},cur:function(){var a=Zb.propHooks[this.prop];return a&&a. get?a.get (esto...

var $ = jQuery.noConflict(true);

// TODO: código javascript aquí...

// FIN

})();

Por supuesto, el código incrustado es el código comprimido, un total de ***3 líneas, y luego agrega una oración:

Copia el código de la siguiente manera:

var $ = jQuery.noConflict(true);

// TODO: el código javascript está aquí:

Copie el código de la siguiente manera noConflict(true);

Tenga en cuenta que $ es una variable local en jQuery. Puede hacer referencia a este $ en cualquier momento en el código posterior. $ variable global en otras versiones de jQuery en la página

p>

El último paso es verificar si el protocolo jQuery nos permite incrustar el código fuente de jQuery directamente en nuestro propio código JavaScript