和onload的加载顺序

作者: 前端技术  发布:2019-09-06

近年来在改一个平放在frame中的页面包车型客车时候,使用了jquery做效果,而页面自己也绑定了onload事件。改完后,Firefox下测验符合规律流畅,IE下就要等个十几秒jquery的功能才出现,黄花菜都凉了。

  发轫感觉是和自个儿onload加载的法子冲突。英特网科学普及的传道是$(document).ready()是在页面DOM拆解分析达成后试行,而onload事件是在富有财富都图谋实现以后才试行,也即是说$(document).ready()是要在onload此前实践的,越发当页面图片十分的大相当多的时候,那些时间差也许更加大。可是笔者那页面分明是图表都来得出来十几秒了,还不见jquery的作用出来。

  删了onload加载的措施尝试,结果仍然同样,看来不需求把原本的onload事件绑定也改用$(document).ready()来写。那是何许来头使得Firefox平常而IE就能够啊?接着调试,开采IE下本来绑定的onload方法依然先于$(document).ready()的内容施行,而Firefox则是先举行$(document).ready()的剧情,再施行原本的onload方法。这么些和网上的传教仿佛不完全一致啊,呵呵,有一点意思,好像越来越周边真相了。

  翻翻jquery的源码看看$(document).ready()是哪些落到实处的啊:

复制代码 代码如下:

if ( jQuery.browser.msie && window == top ) (function(){
if (jQuery.isReady) return;
try {
document.documentElement.doScroll("left");
} catch( error ) {
      setTimeout( arguments.callee, 0 );
       return;
    }
   // and execute any waiting functions
   jQuery.ready();
})();
jQuery.event.add( window, "load", jQuery.ready );

结果很明知道,IE只有在页面不是置于frame中的意况下才和Firefox等一律,先施行$(document).ready()的内容,再实行原本的onload方法。对于嵌入frame中的页面,也只是绑定在load事件上进行,所以自然是在本来的onload绑定的点子实施之后才轮到。而以此页面中正万幸测量试验情状下有二个拜会不到的财富,那十几秒的推移正是它推广出的时光差。

作者:Joyce Liu

...

本文由王中王开奖结果发布于前端技术,转载请注明出处:和onload的加载顺序

关键词: