论坛首页 Web前端技术论坛

JS架构探讨-精彩討論进行中...

浏览 26963 次
精华帖 (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>
0 请登录后投票
   发表时间:2011-05-18  
a.js:
function test() {
    alert(123);
}
0 请登录后投票
   发表时间:2011-05-18  
果然是高手!:)
0 请登录后投票
   发表时间: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图。不过貌似不是原创。天下文章大家抄的感觉。
0 请登录后投票
   发表时间:2011-05-19  
我看了后只是觉得 淘宝大牛的 seajs 满足模块化的需求,但是继承就要另外实现了
0 请登录后投票
   发表时间:2011-05-19  
怎么现在动不动都喜欢谈架构、模块化开发,以前做后端的时候总听到ioc,aop,现在做前端了,又开始一坨的模块、继承。难道现在只要是项目没有不大到不得不模块化开发的境界?
12 请登录后投票
   发表时间:2011-05-19  
linkobe 写道
怎么现在动不动都喜欢谈架构、模块化开发,以前做后端的时候总听到ioc,aop,现在做前端了,又开始一坨的模块、继承。难道现在只要是项目没有不大到不得不模块化开发的境界?


不是非要大才要模块化,模块化是为了复用,复用既可以是但项目内的,也可以是项目之间的。模块化的东西可以形成团队的过程资产。
0 请登录后投票
   发表时间: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);
    }
});
0 请登录后投票
   发表时间:2011-05-19  
前端将越来越重要。
0 请登录后投票
   发表时间:2011-05-19  
还是更喜欢mootool
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics