指引网

当前位置: 主页 > 网页制作 > JavaScript >

onload js函数不执行的原因分析及解决方法

来源:网络 作者:佚名 点击: 时间:2017-08-08 23:00
[摘要] 今天打开网站的时候,发现很多页面的信息都没有显示出来,仔细观察了之后,发现都是onload的js函数没有执行的原因。其实之前曾发现过这个情况,我以为是网站出了问题,然后采用多种方法

今天打开网站的时候,发现很多页面的信息都没有显示出来,仔细观察了之后,发现都是onload的js函数没有执行的原因。其实之前曾发现过这个情况,我以为是网站出了问题,然后采用多种方法试图让onload的js能够执行,又是重新生成网页、又是重启站点、重启IIS,甚至重启服务器都干过,我的想法是可能网页速度太慢了而导致没有执行onload的js函数。

onload js函数不执行的原因分析及解决方法

今天又出现此问题之后,我不再盲目的操作了。我发现最近Google的统计代码加载很慢,经常在浏览器状态栏里看到Google的统计代码链接在运行,而就在这个过程,导致网页被k住了。我细心观察了下,不但是Google的分析程序,还有Google AdSense的链接、百度联盟的链接等第三方js代码都时不时出现这个问题,就是被k住了不能加载联盟广告,继而网页也不能继续加载其他的东西,包括onload的js函数的执行。

点击上图放大

受这个启示,我首先把Google的统计分析代码去掉,然后打开网页,看看是否可以执行onload的js函数;如果不行,再把AdSense的联盟广告代码去掉,然后测试显示效果;如果还不行,就再把百度联盟广告的代码去掉,看是否解决问题。一般情况下,经过这三个步骤,onload的js函数不能执行的问题就可以解决了。

实际上,在遇到这个问题是,我们只需注意一下状态栏里哪个地址的执行最久,哪个地址就是祸根了,把它去掉即可。如果是站内图片,则需要优化一下了,找出其加载慢的原因从而解决问题。

onload的js函数是在网页加载完毕后才执行

我一直不是很清楚,我以为onload的js函数是在网页打开的时候就执行了的,实际上,onload的js函数是在网页加载完毕后才执行,即它是网页最后才执行的函数。

了解了这个之后,我们就能理解为什么有时候onload的js函数没有执行了,原因很简单,因为网页有个别地方没有加载完,被k住哪里了。

------分隔线----------------------------