我正在尝试构建一个 ajax 脚本加载器,但我遇到了我将组合文件的片段发送两次的问题(即 jquery,与其他脚本捆绑在一起,因为它是必需的,所以被发送了两次由一些(ajax)请求的脚本通过网络发送。
我的第一个想法是,我只需将 md5 块附加到文件名上,如果请求的脚本与其中的一部分匹配,则不要发送 - 但这对于 100 个捆绑脚本来说不能很好地扩展。
有人有其他建议吗?
谢谢!
马特·穆勒
我正在尝试构建一个 ajax 脚本加载器,但我遇到了我将组合文件的片段发送两次的问题(即 jquery,与其他脚本捆绑在一起,因为它是必需的,所以被发送了两次由一些(ajax)请求的脚本通过网络发送。
我的第一个想法是,我只需将 md5 块附加到文件名上,如果请求的脚本与其中的一部分匹配,则不要发送 - 但这对于 100 个捆绑脚本来说不能很好地扩展。
有人有其他建议吗?
谢谢!
马特·穆勒
I think it depends on the script types. Personally I'd define the libraries that are available and then just test to see if the object has been defined.
WAG example here, just off the top of my head (in my opinion this method could be pretty heinous to use on a regular basis but would be faster than individually identifying text.)
//javascript loader shell
var loader = function(){
var loadLibrary = function(libraryName, fn){
//your code to verify and download library or collection here
//callback function
return fn();
}
return {
exec: function(libraryName, fn){
if(typeof(eval('window.'+libraryName)) != 'undefined'){
return fn();
} else {
return loadLibrary(libraryName, fn);
}
}
}
}();
//example usage
loader.exec('util', function(){util.test();});