高效JavaScript学习(1)--- Script 的加载和执行
来源:互联网 发布:安卓换字体软件 编辑:程序博客网 时间:2024/05/17 23:07
Javascript的阻塞特性
javascript的性能很大程度影响前段的工作效率,主要是因为浏览器执行javascript代码的时候,不能做其他的任何事情。用户页面UI的更新与javascript代码的执行和下载公用一个进程,所以同一时刻只能去做一件事情。
这样导致的原因是<script>标签每次出现后,页面就会停止加载去等待他的下载、解析、执行。
JS的脚本位置
<script>标签被允许放置在页面的任何位置,我们的习惯用法是将其放在head标签内进行加载,但是这样加载就存在一个弊端,当浏览器解析到<script>标签的时候,就会停止交互而去下载、解析、执行javascript代码。尽管<script>标签已经在很大程度上放开了script标签的权限,使其在下载外部资源的时候不会阻塞其他的script标签,但是js在下载的过程中还是会影响其他的资源下载,比如说css,image等。因此<script>标签被推荐放置在<body>标签的底部,以减少对整个页面下载的影响。
如何对脚本进行组织
Script标签在初始下载过程中会组织页面的渲染,因此较少script的标签有助于较少http请求所带来的消耗,从而有助于脚本的开发。YUI,dojo等都提供了专门的工具进行脚本的压缩和合并。
无阻塞脚本
当页面js文件过多时,将所有js代码压缩到同一js文件是不可行的,所以推荐使用无阻塞的脚本;
无阻塞脚本生成方法就是在页面加载完成以后去加载Javascript代码,也就是$(function(){ …. })中进行代码的加载。
无阻塞脚本主要有以下的解决方案:
1) 使用延迟脚本,当<script>标签中不含有DOM操作的时候,<script>标签可以安全的进行延迟执行,故我们可以使用defer属性即<script type=’text/javascript’ src=’….’ Defer/>
2) 动态创建脚本元素,可以通过
$(“<script src=’…’ type=’text/javascript’></script>”).appendTo(“head”)来动态的创建script标签,从而可以自己确定script加载运行的位置,同时阻塞其他的进程信息。
3) 通过ajax请求进行标签的注入,在页面加载到必须的js文件后,可以使用ajax请求来对页面中的外部js文件进行请求,从而避免了<script>标签在下载时的阻塞特性。$.load(“****.js”)
- 高效JavaScript学习(1)--- Script 的加载和执行
- javascript-学习笔记-<script> </script> 代码执行的和上一个博客相对应的
- <script></script>和<script language=javascript></script>的区别
- <script>标签的加载解析执行
- javascript的加载和执行浅析
- JavaScript的性能优化:加载和执行
- JavaScript的性能优化:加载和执行
- JavaScript的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行 .
- JavaScript 的性能优化:加载和执行
- JavaScript 的性能优化:加载和执行
- VC++2008如何用tab控件实现属性页
- SSH 简单实例图
- js 导出数据到excel
- 最近项目开发中的JS问题
- OSWorkflow灵活的工作流引擎 .
- 高效JavaScript学习(1)--- Script 的加载和执行
- C#中Split用法
- 高效JavaScript学习(2)--- DOM编程
- 控件和窗口的关系
- 关于scanf()不能正确接收有空格符的字符串的问题
- Java 虚拟机学习(1)---java虚拟机简介
- 使用VC++编译驱动程序
- 合并果子
- ubuntu花屏解决办法