今天打开网站的时候,发现很多页面的信息都没有显示出来,仔细观察了之后,发现都是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住哪里了。

JQuery的$(window).load()与OnLoad事件比较

JQuery的$(window).load()方法与OnLoad事件,很大的区别就是执行的顺序不同。

对于Body.Onload事件,是在加载完所有页面内容才会触发,我的意思是所有内容,包括图片,flash等.如果页面的这些内容很多会让用户等待很长时间。

而对于$(document).ready()方法,这个方法只是在页面所有的DOM加载完毕后就会触发,无疑很大的加快了网页的速度。

但是对于一些特殊应用,比如图片的放大缩小,图片的剪裁。需要网页所有的内容加载完毕后才执行的呢?我推荐使用$(window).load()方法,这个方法会等到页面所有内容加载完毕后才会触发,并且同时又没有OnLoad事件的弊端。

<script type="text/javascript">
        $(window).load(function() {
            alert("hello");
        });
        $(window).load(function() {
            alert("hello again");
        });
    </script>

上面的代码会在页面所有内容加载完成后按先后顺序依次执行。

当然不要忘了与之对应的Unload方法:

$(window).unload(function() {
            alert("good bye");
        });

上面代码会在页面关闭时引发。

在所有DOM加载之前引发JS代码,这个方法是我在调试的时候最喜欢的,有时候开发的时候也用这种方法。

<body>
    <script type="text/javascript">
        (function() {
            alert("hi");
        })(jQuery)
    </script>
</body>

对,就是利用js闭包的形式将js代码嵌入body,这段代码会自动执行,当然也可以直接嵌入js代码,这种方式要注意顺序问题,如下:

<body>
<div id="test">this is the content</div>
    <script type="text/javascript">
        alert($("#test").html());//I Can display the content
    </script>
</body>
<body>
   <script type="text/javascript">
       alert($("#test").html());//I Can't display the content
    </script>
    <div id="test">this is the content</div>
</body>

上面两段代码,第二段代码当中因为只能解释到当前代码之前的DOM,而test并不存在于已经解析的DOM数,所以第二段代码无法正确显示。

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

  1. mysql还原1418错误_MySQL 出现错误1418 的原因分析及解决方法

    MySQL 出现错误1418 的原因分析及解决方法 具体错误: 使用mysql创建.调用存储过程,函数以及触发器的时候会有错误符号为1418错误. ERROR 1418 (HY000): This f ...

  2. Windows变慢原因分析及解决方法·系统篇

    Windows变慢原因分析及解决方法·系统篇 系统加速 一 [Windows 98 ] 1.不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序.选择"开始→程序→附件→系统工 ...

  3. Windows 变慢原因分析及解决方法

    Windows变慢原因分析及解决方法 谁都希望计算机一开机就可以立即进入Windows系统而不用等待,或者是系统在使用的时候不会越来越慢,但由于种种原因常常使这些愿望不能实现,甚至一开机就死机或者用着 ...

  4. 进入U盘PE系统无法识别硬盘分区的原因分析和解决方法

    进入U盘PE系统无法识别硬盘分区的原因分析和解决方法 时间:2015-07-15     来源:http://www.xitongtiandi.com/    复制网址        进入U盘PE系统 ...

  5. win10系统装服务器2008蓝屏,升级安装Win10正式版后出现蓝屏怎么办?Win10蓝屏原因分析及解决方法...

    最近有不少人都升级了Win10系统,但是有一些人Win10安装好了以后,总是蓝屏和不停地重启,根本不能好好体验新版Win10了.那么升级安装Win10正式版后出现蓝屏怎么办?下面就分享Win10蓝屏原 ...

  6. 球球大作战显示中国服务器较差,球球大作战延迟卡顿原因分析及解决方法

    球球大作战想必不用说也知道多火了吧,小编周围的朋友都在玩,当然在玩的时候要是卡顿延迟的话就会让游戏体验大打折扣了,那么出现延迟卡顿要怎么解决呢?下面就让小编来告诉你处理的方法. 球球大作战延迟卡顿 球 ...

  7. android开不了机怎么办手机号码,手机开不了机怎么办 原因分析及其解决方法

    手机开不了机怎么办 原因分析及其解决方法 来源:www.18183.com作者:皮卡时间:2016-07-12 有很多小伙伴们反映手机开不了机怎么办?这个问题实在是太笼统了,手机开不了机的问题有很多, ...

  8. mysql unauthenticated user原因分析以及解决方法

    mysql unauthenticated user原因分析以及解决方法 参考文章: (1)mysql unauthenticated user原因分析以及解决方法 (2)https://www.cn ...

  9. win7安装android驱动失败怎么办,Win7蓝牙驱动安装失败的原因分析与解决方法

    蓝牙是一种支持设备短距离通信的无线电技术,现在不管是手机还是电脑都已经普遍的使用蓝牙功能了.如果Win7系统电脑没有安装蓝牙驱动的话,是需要安装后才能使用的.最近,有用户在安装蓝牙驱动的时候,发现安装 ...

最新文章

  1. POJ - 3190 Stall Reservations(贪心+优先队列优化)
  2. 打趴系统的不一定是技术
  3. ggplot2中显示坐标轴_ggplot2作图:修改图中一切文本的外观
  4. 四面八方的意思是什么,怎么用四面八方造句?
  5. Nexus私服学习1
  6. C语言实现飞机订票系统
  7. SAP扫盲系列之一:什么是SAP系统和应用服务器
  8. C++ 的 Copy Elision
  9. [leetcode] 179 Largest Number
  10. Windows 10(Win10) 怎么删除设备和驱动里的CD驱动器
  11. 我们遇见了一个什么样的张小龙以及他的77条产品原则
  12. JavaWeb在线租车服务系统
  13. Java_登录界面设计
  14. 科研中的部分依赖图(PDP)绘制
  15. 用Python写一个UI界面
  16. 【技术分享】python web 安全总结
  17. 系统在此应用程序堆栈溢出_Web应用程序:在开始之前选择正确的技术堆栈
  18. 控制台快速理解简单工厂
  19. 前端程序员必备的 6 个浏览器插件!
  20. 基于AntDesign UI的自定义表单

热门文章

  1. 解决Required request body is missing:....
  2. 中级软考-软件设计师(三)
  3. 校园表白墙源码LoveWall
  4. 匹兹堡大学申请条件计算机科学,匹兹堡大学计算机科学理学硕士研究生申请要求及申请材料要求清单...
  5. IT行业的魔力在哪里?98%的人都......
  6. badger和rocksDB性能对比
  7. hexo博客yilia主题_缺失模块_解决方案
  8. netflix网络错误_netflix正在改变我们对网络安全的看法
  9. 在微信小程序中使用自定义字体【font-family】、同时在canvas
  10. 十多天的鸭子得了心包积液是什么原因鸭摇头晃脑不吃食怎么治疗