0
A
回答
0
由于像Require JS这样的库没有解决我的问题,所以我提出了自己的解决方案,我在下面发表。
我的系统也是由不同的模块组成。在主模块中,我有一个用于所有模块(php,js和css文件)依赖关系的加载器。在加载依赖关系之后,应用程序将触发一个事件并设置一个全局变量来防止文件的双重包含。
希望它有帮助。如果您有任何疑问,请告诉我。
的代码:
//Main
var main = {
init: function(){
//Dependencies to load (php, js or css)
var deps = [
'/helpers/edit/v/edit.php',
'/helpers/edit/css/edit.css',
'/helpers/validate/js/jquery.validate.js,messages_pt_BR.js'
];
//Load initial pack
if (!window.editReady){
//Load dependencies
this.load('edit',deps);
//Bind loaded event
$('body').on('editReady',function(){
//Set editLoaded to avoid double ajax requests
window.editReady = true;
//Do whatever you need after it's loaded
});
}
},
//Load external resources
load: function(name,data_urls){
var url, ext;
var len = data_urls.length;
var i = 0;
$(data_urls).each(function(){
//Get proper file
$.get(this, function(data) {
url = this.url;
ext = url.split('.').pop();
switch(ext){
case 'php':
this.appended
$(data).appendTo('body');
break;
case 'css':
$('<link/>')
.attr({
'rel':'stylesheet',
'href':url
}).appendTo('head');
break;
}
//Check if all files are included
i += 1;
if (i == len) {
$("body").trigger(name+"Ready");
}
});
});
}
};
var modules = {
themes : {
init : function(){
//Load dependencies
var deps = [
'/helpers/plupload/js/plupload.js,plupload.html5.js,plupload.flash.js'
];
if (!window.themesReady){
//Set themesReady to avoid double ajax requests
window.themesReady = true;
//Load dependencies
main.load('themes',deps);
$('body').on('themesReady',function(){
//Do whatever you need after it's ready
});
}
}
}
}
main.init();
4
RequireJS怎么样?似乎是你在找什么。
相关问题
- 1. Javascript脚本多次加载
- 2. Turbolinks多次加载Javascript
- 3. THREE.TextureLoader()多次加载相同的纹理(即20次或更多次)
- 4. 多次使用相同的javascript函数
- 5. 防止多次下载相同的JavaScript库
- 6. 确保不会多次下载相同的javascript文件
- 7. 相同的CSS文件加载两次
- 8. StringBuilder追加相同的字符多次
- 9. 动态添加相同的UserControl多次
- 10. NSMutableArray多次添加相同的NSDictionary
- 11. 多次加入相同的pthread
- 12. Android:UIL我希望能够多次加载相同的图像
- 13. 在一个过程中多次加载相同的gstreamer元素
- 14. NHibernate多次加载相同的对象 - 请帮助!
- 15. colorbox在firefox中多次加载相同的文档
- 16. Facebook社交插件多次加载完全相同的资源
- 17. 如何在页面上多次加载相同的iframe?
- 18. AJAX重新加载按钮有时会多次预加载相同的消息
- 19. 相同ScriptResource,AXD加载两次
- 20. 不要加载相同的JQuery加载文件两次
- 21. Java类加载器:加载两次相同的类
- 22. 多个AsyncTasks加载相同的WebView
- 23. 加载更多重复相同的值
- 24. 相同的Zend_Form_Element多次
- 25. Javascript“图像加载”多次触发
- 26. 如何防止javascript被多次加载
- 27. 同一图像加载多次
- 28. 的Javascript - 加载一次
- 29. 多个类加载器加载的相同类 - Intellij插件
- 30. 加载相同的程序集两次,但版本不同
它通常依赖于网站是如何创建的,通常情况下的服务器端代码用来管理哪些资源被加载,例如与['ScriptManager.RegisterClientScript'](HTTP ://ASP.NET。microsoft。 – zzzzBov