前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jquery的ready方法实现原理

jquery的ready方法实现原理

作者头像
dys
发布2018-04-03 12:03:54
1.4K0
发布2018-04-03 12:03:54
举报
文章被收录于专栏:性能与架构性能与架构

应用jquery时 ready是一个非常常用的方法,我们常常会写 $(document).ready(function) 或 $(function) ready的作用 window.onload 必须等到页面内包括图片的所有元素加载完毕后才能执行,如果网页上有大量的图片,效果可想而知,用户可能在没有看到图片的时候,就已经开始操作页面了 所以window.onload 很难满足我们的需求 而ready是DOM结构绘制完毕后就执行,不必等到加载完毕 ready是如何实现的? ready是浏览器兼容的,那么就分为两种情况 (1)标准浏览器 标准浏览器非常简单,有 DOMContentLoaded 事件,当所有DOM解析完以后会触发这个事件 (2)非标准浏览器 非标准浏览器麻烦一些,jquery用两个方式来保证 1)如果浏览器存在 document.onreadystatechange 事件,当该事件触发时,如果 document.readyState=complete 的时候,可视为 DOM 树已经载入 不过这个事件不太可靠,比如当页面中存在图片的时候,可能反而在 onload 事件之后才能触发,所以不能完全指望此方法 2)doScroll检测 IE浏览器文档中说明,当页面 DOM 未加载完成时,调用 doScroll 方法时,会产生异常

那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了,可以不断地通过能否执行 doScroll 判断 DOM 是否加载完毕

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档