高性能JS笔记1——加载执行
一、脚本位置
1、Script标签尽可能放到Body底部,以减少脚本文件下载对整个页面UI渲染的影响。
2、Script标签永远不要紧跟Link标签后面。
二、组织脚本
1、合并多个文件在一个Script中加载:
<script type="text/javascript" src="/scripts/jquery.min.js&/scripts/jquery.validation.js"></script>
三、无阻塞的脚本
1、无阻塞的脚本——在 Window对象的 Load事件触发后再下载脚本。
2、延迟的脚本加载——Script标签添加 Defer属性
<script type="text/javascript" src="/scripts/jquery.min.js" defer></script>
3、动态脚本加载
通过 JS动态创建 Script元素,但必须确保在页面加载完之后再执行。下面提供一个封装函数:
function loadScript(url, callback)
{
var script = document.createElement("script");
script.type="text/javascript";
if(script.readyState){ //IE
script.onreadystatechange = function(){
if(script.readyState=="loaded"|| script.readyState=="complete"){
script.onreadystatechange = null;
callback();
}
};
}
else{
script.onload=function(){
callback();
}
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
} // Execute loadScript
loadScript("file1.js", function(){
loadScript("file2.js", function(){
loadScript("file3.js", function(){
alert("All files are loaded!");
});
});
});
4、XMLHttpRequest 脚本注入
跨域使用时有问题,不是我的菜。
高性能JS笔记1——加载执行的更多相关文章
- 高性能 js -- 无阻塞加载脚本
		
参考: <<高性能JavaScript>> Nicbolas C. Zakas 著 javascript代码的下载和执行过程会阻塞浏览器的其他进程, 比如页面的绘制, 遇到&l ...
 - 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
		
动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...
 - 对于HTML页面中CSS, JS, HTML的加载与执行过程的简单分析
		
来自 https://blog.csdn.net/u011088260/article/details/79563315 最近在研究HTML页面中JavaScript的执行顺序问题.在Java ...
 - JS,Javascript加载与函数执行过程
		
Js,Javascript加载与函数执行过程 test.html <!DOCTYPE HTML> <html lang="en"> <head> ...
 - 高性能js之js文件的加载与解析
		
随着网站的发展,现在的网页已经离不开js,经常一个页面会引入大量的js.那么该如何合理的加载这些js? head标签中引入js文件可能是最常见的一种方式,但是这样会造成一个问题.因为j可以说是浏览器中 ...
 - js jquery 页面加载初始化方法
		
js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...
 - js的动态加载、缓存、更新以及复用(四)
		
本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.j ...
 - 关于js css html加载顺序整理
		
1.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控. 正常的网页加载流程是这样的. 浏览器一边下载HTML网页,一 ...
 - 使用async属性异步加载执行JavaScript
		
HTML5让我兴奋的一个最大的原因是,它里面实现的新功能和新特征都是我们长久以来一直期待的.比如,我以前一直在使用placeholders,但以前必须要用JavaScript实现.而HTML5里给Ja ...
 
随机推荐
- C#的回调被C++调用
			
__stdcall 要加这个 extern "C" __declspec(dllexport) 要用这样的东东 定义 extern "C" __declspec ...
 - Android 优化布局层次结构
			
前面介绍过使用HierarchyViewer和Android lint来优化我们的程序,这一篇算是总结性的,借助一个小例子来说用怎么优化应用布局.这个例子是android官网给出的,作者也当一把翻译. ...
 - 原生js提交表单
			
/********************* 表单提交 ***********************/ function ajax(options) { options = options || { ...
 - SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
			
在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...
 - MySQL不能插入中文字符及中文字符乱码问题
			
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8.在安装后MySQL之后,它的配置文件不是很给力,不知道你们的是不是,反正我的是! 开始插入中文 ...
 - weblogic集群中获取jndi的方式
			
# The following example specifies a list of WebLogic Servers using the same port: ht.put(Context.PRO ...
 - 为sourceinsight添加makefile、kconfig、*.S文件支持
			
转载:http://www.cnblogs.com/myblesh/articles/2452030.html 大家用source insight看linux源码的时候都遇到这么一个麻烦,make ...
 - iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)
			
一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...
 - linux内核更新前后配置文件的比较
			
说明:这里先给出一个比较的结果,作为记录,后续会给出内核配置差异的详细解释. [root@xiaolyu linux-4.7.2]# diff .config .config_bak 3c3< ...
 - ASP.NET Core学习零散记录
			
赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com ...