js异步加载与执行1

2 篇文章 0 订阅

背景交代

目前的大多数浏览器使用的是单一进程, 因此在处理用户界面和执行js件都是一件一件进行的,浏览器必须先花时间下载并执行代码,此过程中页面渲染和用户交互是阻塞的。

一般情况下,script标签出现在head中,link紧随其后以及其它页面元信息。

<!DOCTYPE html>
<html>
	<head>
		<title>test</title>
		<script type="text/javascript" src="js/jquery.js" ></script>
		<script type="text/javascript" src="js/main.js" ></script>
		<script type="text/javascript" src="js/showBo.js" ></script>
		<link rel="stylesheet" href="css/flex.css" />
		<meta charset="utf-8" />
	</head>
	<body>
		<div id='content'>
			<div>
				<img src="img/compatible_chrome.gif" >
				<span>chrome</span>
			</div>
			<div>
				<img src="img/compatible_firefox.gif" >
				<span>firefox</span>
			</div>
			<div>
				<img src="img/compatible_ie.gif" >
				<span>ie</span>
			</div>
			<div>
				<img src="img/compatible_opera.gif">
				<span>opera</span>
			</div>
			<div>
				<img src="img/compatible_safari.gif" >
				<span>safri</span>
			</div>
		</div>
	</body>
</html>


head加载以上三个javascript脚本,脚本阻塞页面的渲染,只有当这三个脚本按顺序下载执行完后,页面的渲染才会继续向下,当到达body时,页面的渲染才真正开始。那么细心的你会不会想问,为什么非得等到js下载执行完后再继续渲染呢?

虽然说IE,FF,sf ch等浏览器允许交行下载js,但对于其它资源的下载还是阻塞的,页面必须等待js下载执行。也许大家都看到过将script放在body的最下面,它能够减少对整个页面下载的影响。

<!DOCTYPE html>
<html>
	<head>
		<title>test</title>
		<link rel="stylesheet" href="css/flex.css" />
		<meta charset="utf-8" />
	</head>
	<body>
		<div id='content'>
			<div>
				<img src="img/compatible_chrome.gif" >
				<span>chrome</span>
			</div>
			<div>
				<img src="img/compatible_firefox.gif" >
				<span>firefox</span>
			</div>
			<div>
				<img src="img/compatible_ie.gif" >
				<span>ie</span>
			</div>
			<div>
				<img src="img/compatible_opera.gif">
				<span>opera</span>
			</div>
			<div>
				<img src="img/compatible_safari.gif" >
				<span>safri</span>
			</div>
		</div>
		<script type="text/javascript" src="js/jquery.js" ></script>
		<script type="text/javascript" src="js/main.js" ></script>
		<script type="text/javascript" src="js/showBo.js" ></script>
	</body>
</html>



虽然js下载执行会阻塞,但页面的大部分内容已经渲染完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值