在一个页面上使用两个jQuery是否有任何已知的问题?



我们有一个项目在noConflict模式下使用jQuery。本产品的用户使用自己的jQuery版本。结果是页面上有两个版本的jQuery(一个在noConflict(true)模式下,另一个在normal/global模式下)。

这种方法有什么已知的问题吗?官方文件说

如果由于某种原因加载了两个版本的jQuery(这是不推荐的)…

但没有说明原因

两个或多个版本的jQuery都可以工作,但前提是操作正确且非常小心。一般来说,应该尽量避免,原因如下:

  1. 加载多个版本的jQuery需要更长的下载时间,并且在页面处于活动状态时消耗更多内存。jQuery的设计人员非常努力地在代码量中获得这么多的功能,当他们看到人们包含多个版本的jQuery并消耗两倍或三倍的内存/下载时,他们可能会畏缩。
  2. 对于任何给定的代码段,您必须非常小心地始终只访问正确版本的jQuery。在同一段代码中混合版本可能会导致意外问题。
  3. 版本之间不能共享某些类型的数据。例如,如果你在一个版本的jQuery中使用$(elem).data("key", info)设置了一些信息,那么这些数据将无法在其他版本的jQuery中使用,因为它们都有自己的.data()存储库。
  4. 不能在版本之间共享事件处理程序。例如,如果你做.on()与一个版本,你试图做.off()与其他为了清除所有的jQuery事件处理程序在一个给定的对象,你只会删除事件处理程序安装在当前版本的jQuery(再次因为每个版本的jQuery有它自己的事件处理程序存储),而不是那些安装与其他。

没有问题,由于jQuery的无冲突模式,您可以使用两个或多个jQuery版本的程序。

jQuery文档中说:

" [. .[…]"

在我看来,由于引入了新问题,您必须记住始终使用指定版本的特定jQuery函数:

jQuery_1_x_y('#el').function(); 
jQuery_1_k_z('#el').function(); 

相关内容

最新更新