浏览器中的阻塞加载和异步加载
来源:互联网 发布:spring框架编程 编辑:程序博客网 时间:2024/05/21 11:14
昨天在优化项目中的一个插件,遇到一个很严重的问题。js的异步加载。
一般情况,浏览器在加载页面当中的js,都是阻塞加载的,也就是从上到下,加载完一个才继续加载下一个。我的插件是依赖jquery库才能执行的。
现在的问题是,我的页面是异步加载的,也就是插件在jquery之前就已经加载了。报错是$(...) is not function。百度之后发现很多朋友都有遇到。以前的解决方式,肯定是把jquery放到插件前面就解决了。可能我的错误比较奇葩,这种方式完全不起作用。
我的解决方式有3种:
1.定时器,延迟加载,让这个插件在jquery之后执行就可以。setTimeout("chajian()", 1000);
2.使用defer或者async属性,例如:<script src="~/Scripts/SelfReporting.js" defer></script>,加上 defer 等于在页面完全在入后再执行,相当于 window.onload ,但应用上比 window.onload 更灵活!使用async时,脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行),也就是先执行他,不过需要注意,async这个属性尽量不要在jquery引入时使用。
3.第三种方式就是ajax了,在页面加载完之后引入这个js.例如:
$(document).ready(function(){
$.getScript("/Scripts/SelfReporting.js");
});
以上纯属个人想法,不对的地方欢迎大家指正。
- 浏览器中的阻塞加载和异步加载
- LABjs --- Javascript实现异步加载和阻塞
- 异步加载JS,无阻塞
- 异步加载和延迟加载
- 异步加载和延迟加载
- Android中的异步加载
- android中的异步加载
- 同步加载、异步加载和延迟加载
- iframe异步加载性能优化及无阻塞加载
- 缓存和异步加载
- 异步加载 和验证
- AJAX中的同步加载与异步加载
- AJAX中的同步加载与异步加载
- 浏览器加载js的阻塞与非阻塞
- 浏览器加载js的阻塞与非阻塞
- rails中的zTree异步加载
- ThinkPHP中的异步加载问题
- cocos2dx3.2 异步加载和动态加载
- Table表格
- Python Robot Framework使用小结
- Amazon EC2 CPU积分机制
- Vue从入门到精通(3)--第二阶段:NodeJS、Webpack
- Mybatis工作流程
- 浏览器中的阻塞加载和异步加载
- 春招惨败的心情
- 消息队列使用的四种场景介绍
- NYOJ_715_River Crossing【dp】
- excel格式转换(hbase导表)
- Linux命令--用户及权限管理
- window.location.href传值
- Android蓝牙串口通讯
- CXF 开源的WebService框架