js加载的缺点:加载工具方法没必要阻塞文档,过多js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作。 有些工具方法需要按需加载,用到再加载,不用不加载,。
默认正常模式下下,js是同步加载的,即优先加载js,只有当js文件下载完,dom和css才开始加载,当某些时候我们需要js异步加载,我们可以通过以下方式来设置异步加载,不同情况下选取不同方式即可
1.defer:defer
2.(h5)async:async(asynchronous) ajax(asynchronous javascript and xml)
3.除了以上两种方法,还有一种兼容自己封装的异步加载方式,即动态添加script标签也能实现异步加载。
function asyncloaded(url,callback){/*url为js的链接,callback为url的js中的函数(该函数调用应该写到匿名函数中,如function(){console.log(div.getscrolloffset())})*/ var script = document.createelement('script'); script.type = 'text/javascript'; /*if else 这几句话必须要写到这位置处,不能放最后,因为if中js加载中script.readystate存在好几种状态, 只有状态改变‘readystatechange'事件才会触发,但现在浏览器加载速度很快,当解析到该事件时js有可能已经加载完, 所以事件根本不会触发,所以要写到前面*/ if(script.readystate){//兼容ie script.onreadystatechange = function() {//状态改变事件才触发 if(script.readystate == 'loaded' || script.readystate == 'complete'){ callback(); script.onreadystatechange = null; } } }else{ script.onload = function(e){ callback(); } } script.src = url; document.body.appendchild(script); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)
javascript如何使用函数random来实现课堂随机点名方法详解
网友评论