Script的加载方法小结 |
本文标签:Script,加载 1.静态加载 2 。延迟加载 3.动态加载 复制代码 代码如下: <script type="text/javascript"> var js = document.createElement("script"); js.src = **.js; document.getElementsByTagName("head")[0].appendChild(js); </script> 这段代码创建了script标签,并插入这条标签到文档中 。关键在于,这个脚本的加载时异步的,不会影响页面渲染的进程,不会阻塞页面内容的展示 。这样的方式尽管不会阻塞页面资源的加载,但却可能会阻塞其他的script脚本,不同浏览器在这点上的表现是有非常大的差异的,参看这篇文章动态引入的外部 JS 文件在各浏览器中的加载顺序不一致 1.同样的动态加载代码,不同浏览器对动态加载进来的js,是否阻塞下条Script标签的表现是不一样的
2.实现动态加载的那段代码顺序不同,对同一个浏览器来说,结果可能是非常迥异的,
代码顺序的调换,IE的表现就不一样 所以,对动态加载脚本,需要重点关注的一个问题是,所动态加载的JS脚本的接口依赖问题 。这个问题的解决方案也不复杂,既根据实现业务的需要跟踪所加载脚本的加载状态 。加载状态的判断在IE下用readyState属性,非IE浏览器支持,脚本加载完成后的onload方法的调用 。 业界优秀的延迟加载库 Ryan Grove 的LazeLoad https://github.com/rgrove/lazyload |