javascript 高级程序设计之 script标签的位置与延迟脚本

来源:互联网 发布:iphone数据恢复软件 编辑:程序博客网 时间:2024/04/30 14:29

按照惯例,所有<script>元素都应该放在页面的<head>元素中,这种做法的目的就是把所有外部文件(包括css文件和javascript文件)的引用都放在相同的地方.可是,在文档的<head>元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载,解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容).对于那些需要很多JavaScript代码的页面来说,这无疑会导致浏览器在呈现页面时出现显示的延迟,而延迟期间的浏览器窗口中将是一片空白.为了避免这个问题,现代web应用程序一般都会把全部JavaScript引用放在<body>元素中,放在页面的内容后面,这样,在解析包含的JavaScript代码之前,页面的内容将完全呈现在浏览器中.而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了

2.1.2 延迟脚本

HTML 4.01为<script>标签定义了defer属性.这个属性的用户是表明脚本在执行时不会影响页面的构造.也就是说,脚本会被延迟到整个页面都解析完毕后再运行.因此,在<script>元素中设置defer属性,实际上与上一节中介绍的把<script>元素放在页面最底部的效果是一新的

<html>  <head>    <title>aaa</title>    <script type="text/javascript" defer="defer" src="ex.js"></script>  </head>  <body>    dddd  </body><html>
在这个例子中,虽然我们把<script> 元素放在了文档的<head>元素中,但其中包含的脚本将延迟到浏览器遇到</html>标签后再执行.

不过,问题是并非所有浏览器都支持defer属性,IE和Firefox 3.1是目前唯一支持defer属性的主流浏览器.其它浏览器则会忽略这个属性,不延迟脚本的执行

0 0
原创粉丝点击