假设我们在页面的标题中加载了jquery.min.js,如果我的页面包含一个div,其内容是从另一个页面加载的,该页面也包含jquery.min.js,那么jquery在浏览器中加载了多少次还是两次?
答案 0 :(得分:2)
如果你加载的内容中的脚本元素被执行(可能是也可能不是这样),jQuery将第二次加载。问题是:发生这种情况会发生什么?
答案是:这取决于,但它可能并不好。
如果没有任何内容保留对旧jQuery函数的引用,并且您还没有添加任何插件,并且您还没有使用data
函数注册任何事件处理程序或设置任何数据,事情应该没问题。
如果已经完成了任何这些事情,那么它可能会很快混淆,因为如果你保留了对jQuery的前一个副本的引用,可能是这样的:
jQuery(function($) {
// Using $ here...
});
...您将使用第一个副本以及使用第二个副本的其他代码获得一些代码。
插件附加到jQuery的当前副本,因此第二次加载它意味着这些插件在新加载的副本上不可用。
当您使用data
函数设置事件处理程序或保存数据时,jQuery将信息存储在其内部保存的数据结构中,因此这些处理程序和该数据不会对另一个副本可用。就事件处理程序而言,只有在尝试使用新加载的副本删除它们时才真正重要。
底线:最好避免它。