锁定老帖子 主题:JS架构探讨-精彩討論进行中...
精华帖 (0) :: 良好帖 (12) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-18
最后修改:2011-05-18
wu_yong988 写道 讨论一下:
switch.js和switch.js能不能在用的时候才加载某个呢? 这样在模块多的时候,性能会有很大提升。 你说的这个原理很简单啊。。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> <script type="text/javascript"> function importScript(scriptPath, callback) { var headTag = document.getElementsByTagName("head")[0]; var scriptTag = document.createElement("script"); scriptTag.type = "text/javascript"; var isOver = false; scriptTag.onload = function() { if (isOver) { return; } isOver = true; callback(); } // IE9/10同时支持onreadystatechange & onload scriptTag.onreadystatechange = function() { if (isOver) { return; } isOver = true; if (this.readyState == 'loaded' || this.readyState == 'complete') { callback(); } }; scriptTag.src = scriptPath; headTag.appendChild(scriptTag); } window.onload = function() { importScript("a.js", function() {test();}); }; </script> </head> <body> </body> </html> |
|
返回顶楼 | |
发表时间:2011-05-18
a.js:
function test() { alert(123); } |
|
返回顶楼 | |
发表时间:2011-05-18
果然是高手!:)
|
|
返回顶楼 | |
发表时间:2011-05-19
加班到现在。随便看看,发现又多了张图。。
设计上的问题: 1.constructor/ais.modual.js设计出来了干嘛呢?mapping吗?没有必要啊 用我写给楼上的代码就ok了。你改改可以这样调用 importScript("js.com.util", function() {.....}); 你的mapping没有必要啊。 2.你的create方法写成了单继承。但是js天生是多继承的。。 3.jq,jq,jq..... 拜读了sina的framework,发现最有价值的是最后的uml图。不过貌似不是原创。天下文章大家抄的感觉。 |
|
返回顶楼 | |
发表时间:2011-05-19
我看了后只是觉得 淘宝大牛的 seajs 满足模块化的需求,但是继承就要另外实现了
|
|
返回顶楼 | |
发表时间:2011-05-19
怎么现在动不动都喜欢谈架构、模块化开发,以前做后端的时候总听到ioc,aop,现在做前端了,又开始一坨的模块、继承。难道现在只要是项目没有不大到不得不模块化开发的境界?
|
|
返回顶楼 | |
发表时间:2011-05-19
linkobe 写道 怎么现在动不动都喜欢谈架构、模块化开发,以前做后端的时候总听到ioc,aop,现在做前端了,又开始一坨的模块、继承。难道现在只要是项目没有不大到不得不模块化开发的境界?
不是非要大才要模块化,模块化是为了复用,复用既可以是但项目内的,也可以是项目之间的。模块化的东西可以形成团队的过程资产。 |
|
返回顶楼 | |
发表时间:2011-05-19
rainsilence 写道 wu_yong988 写道 讨论一下:
switch.js和switch.js能不能在用的时候才加载某个呢? 这样在模块多的时候,性能会有很大提升。 你说的这个原理很简单啊。。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> <script type="text/javascript"> function importScript(scriptPath, callback) { var headTag = document.getElementsByTagName("head")[0]; var scriptTag = document.createElement("script"); scriptTag.type = "text/javascript"; var isOver = false; scriptTag.onload = function() { if (isOver) { return; } isOver = true; callback(); } // IE9/10同时支持onreadystatechange & onload scriptTag.onreadystatechange = function() { if (isOver) { return; } isOver = true; if (this.readyState == 'loaded' || this.readyState == 'complete') { callback(); } }; scriptTag.src = scriptPath; headTag.appendChild(scriptTag); } window.onload = function() { importScript("a.js", function() {test();}); }; </script> </head> <body> </body> </html> 高手!可不可以用异步请求的方式去请求js文件,回来之后eval一下。如下:不知道可行不? $.ajax({ url: 'a.js', type: 'GET', timeout: 1000, success: function(text){ eval(text); } }); |
|
返回顶楼 | |
发表时间:2011-05-19
前端将越来越重要。
|
|
返回顶楼 | |
发表时间:2011-05-19
还是更喜欢mootool
|
|
返回顶楼 | |