javaScript高性能执行和加载(动态地创建script元素)

 javaScript阻塞特性

 javaScript中有个阻塞的特性,就是当浏览器在执行js代码时,不能同时做其他任何事情,无论js代码是内嵌的还是外部引入的。

为了改善上面的阻塞情况,应尽可能的减少页面中<script>标签的出现次数,这同时也是考虑到http请求会带来额外的性能开销,也就是说应减少页面中外链脚本的数量。 

怎样才能解决 javaScript中阻塞的问题呢?解决方式不止一种,我这里就先写一种吧。

解决方式1:动态的创建<script>元素

直接po截图和代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javaScript高性能执行和加载(动态地创建script元素)</title>
</head>
<body>
<h3>javaScript高性能执行和加载(动态地创建script元素)</h3>
</body>
<script type="text/javascript">
function load_script(url, callback) {
	var script = document.createElement("script");
	script.type = "text/javascript";
	if (script.readyState) { //IE浏览器   
		script.onreadystatechange = functio()
		{
			if (script.readyState == "loaded"
					|| script.readyState == "complete") {
				script.onreadystatechange = null;
				callback();
			}
		}
	} else { //others
		script.onload = function() {
			console.log(url + '文件加载完毕了...........');
			callback();
		}
	}
	script.src = url;
	console.log('设置<script>元素的src属性完毕===============');
	document.getElementsByTagName("head")[0].appendChild(script);
	console.log('将<script>元素添加到dom树完毕################');
}

//当要加载多个js脚本文件时,为了确保正确的加载顺序,可以将load_script()函数的执行串联起来
load_script('js/a.js',function(){
	load_script('js/b.js',function(){
		load_script('js/c.js',function(){
			//这里写全部js文件载入后的操作
			console.log('--------哈哈哈,全部js文件载入完毕喽,开心到起飞!--------');
		})
	})
});
</script>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值