日期:2014-05-16  浏览次数:20371 次

JavaScript 的性能优化:加载和执行

无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成。JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长。浏览器在下载和执行脚本时出现阻塞的原因在于,脚本可能会改变页面或 JavaScript 的命名空间,它们对后面页面内容造成影响。一个典型的例子就是在页面中使用document.write()。例如清单 1


清单 1 JavaScript 代码内嵌示例

<html>
<head>
    <title>Source Example</title>
</head>
<body>
    <p>
    <script type="text/javascript">
        document.write("Today is " + (new Date()).toDateString());
    </script>
    </p>
</body>
</html>

?

当浏览器遇到<script>标签时,当前?HTML?页面无从获知?JavaScript?是否会向<p>?标签添加内容,或引入其他元素,或甚至移除该标签。因此,这时浏览器会停止处理页面,先执行?JavaScript代码,然后再继续解析和渲染页面。同样的情况也发生在使用src?属性加载?JavaScript的过程中,浏览器必须先花时间下载外链文件中的代码,然后解析并执行它。在这个过程中,页面渲染和用户交互完全被阻塞了。

脚本位置

HTML 4 规范指出?<script>?标签可以放在 HTML 文档的<head><body>中,并允许出现多次。Web 开发人员一般习惯在?<head>中加载外链的 JavaScript,接着用?<link>?标签用来加载外链的 CSS 文件或者其他页面信息。例如清单 2


清单 2 低效率脚本位置示例

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:62人  网站在8秒内访问总人数:62人 当前 59.37%  粤ICP备18100884号-2