我们这里有一个奇怪的框架。我们有不同的函数尝试添加依赖库。
我的问题是,有没有办法只添加一次库?
例如,如果已经加载了jQuery,是否有一种通用方法可以再次加载jQuery?
可能基于URL吗?
我正在寻找类似于require_once
在PHP中实现的结果。
答案 0 :(得分:1)
在这里,他们向您解释如何使用RequireJS来避免冲突:http://requirejs.org/docs/jquery.html#noconflictmap
答案 1 :(得分:0)
好吧,您可以使用客户端库来执行此操作,例如RequireJS,或者您可以实现服务器端解决方案。我不太了解php,但是想法是让客户端资源管理器对象存在于沙盒范围内(每个客户端http请求一个)。该对象将实现诸如loadResource
之类的方法,这将确保资源仅被加载一次。
答案 2 :(得分:0)
没有'通用'方式只加载一次javascript库。当加载javascript时,它会被执行并直接注入到全局域中,并且没有“通用”跟踪可以跟踪它。远程javascript的责任在于确保自身不能多次加载。 然而,有一些巧妙的技巧可以在这里完成。不使用脚本标记直接加载javascript,而是使用init()函数“注入”依赖项,并且您有机会验证脚本是否已加载。例如,如果您使用jQuery,请执行以下操作:
var jsCache = {};
function init() {
if (jsCache[myJavascript]) {
return;
}
$.getScript("my_javascript.js").done( function() {
jsCache[myJavascript] = true;
}
}
init();
不完美,但应该达到目的。如果可能,请使用requiejs(http://requirejs.org/docs/whyamd.html),但是,您必须将脚本模块化为AMD模块。