:点上面关注
免费学习前端知识!
引入外部脚本时会阻塞
解决办法:内嵌到页面中(不推荐)
其他办法:XHR Eval
通过XMLHttpRequest从服务器获取脚本,当响应完成是通过eval命令执行内容(eval比较慢)
其他方法:XHR注入
也是通过XMLHttpRequest从服务器获取脚本,但是通过一个script标签添加到页面中
其他方法:Script in Iframe
通过页面中的Iframe标签src属性引入外部脚本(不允许跨域请求)(Iframe元素消耗高)
其他方法:JSONP
通过动态创建一个Script标签添加到页面中,而且运行跨域请求的(推荐)
其他方法:Script Defer
HTML5支持一个defer属性可以延迟脚本下载,无阻塞
其他方法:document.write Script Tag
通过document.write写入到页面中,下载脚本时会阻塞
上面的技术并不能保证按照顺序执行和下载,因为脚本都是并行下载的,最先到达的最先执行,其中(document.write Script Tag和Script Defer可按顺序执行)
技术选型很重要,要考虑很多因素
如果要保证脚本执行完毕执行下一个脚本,可以使用onload监听
行内脚本是阻塞的,阻塞下载还阻塞渲染,就是在执行行内脚本时候执行完成才能显示出来