- 1、本文档共102页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaScript学习笔记解析
JavaScript的三大组成部分:
、ECMAScript,它提供了JavaScript核心语言功能的标准
、文档对象模型(DOM),它提供了访问和操作网页内容的方法和接口
、浏览器对象模型(BOM),它提供了与浏览器交互的方法和接口
1.2、javascript的解析顺序:
JavaScript是边解析边执行的脚步语言,从JavaScript代码由上到下边解析边执行
1.3、延迟执行
比如在一个网页中引入了两个JavaScript文件,一个是a.js,一个是b.js,但是不想让a.js中的内容马上执行,必须等整个页面加载完毕后才执行,那么就可以使用延迟执行。如
!--给a.js加上defer=”defer”后,那么a.js中的内容就必须等页面加载完毕后才能执行了--
script type=”text/javascript” charset=”utf-8” defer=”defer” src=”a.js”script/
script type=”text/javascript” charset=”utf-8” src=”b.js”script/
1.4、window.onload与DOMContentLoaded事件
我们在写js代码的时候,一般都会添加window.onload事件,主要是为了在DOM加载完后可以使用 getElementById,getElementsByTagName等方法选取DOM元素进行操作,但是window.load会等到加载完 DOM、脚本、CSS,最后加载完图片甚至是iframe中的所有资源才会触发,很多时候网页的图片较多较大,要等最后图片这个耗时大户加载完才执行js 明显有些太迟了,很多时候都会影响用户体验。
很多js框架都有个document.ready的功能,像JQuery的$(document).ready()方法,可以在DOM加载完就立即执行js代码,让图片自个慢慢加载吧。
document.ready的核心是DOMContentLoaded事件,firefox、chrome、opera、safari、ie9+ 都可以使用addEventListener(‘DOMContentLoaded’,fn,false)进行事件绑定,而ie6~8不支持 DOMContentLoaded事件,所以要针对ie6~8做兼容性处理。
资料上说ie6~8可以使用document.onreadystatechange事件监听document.readyState状态是否等于 complete来判断DOM是否加载完毕,如果页面中嵌有iframe的话,ie6~8的document.readyState会等到iframe中 的所有资源加载完才会变成complete,此时iframe变成了耗时大户。但是经过测试,即使页面中没有iframe,当readyState等于complete时,实际触发的是onload事件而不是DOMContentLoaded事件,对这点表示惊奇。
还好ie有个特有的doScroll方法,当页面DOM未加载完成时,调用doScroll方法时,就会报错,反过来,只要一直间隔调用doScroll直到不报错,那就表示页面DOM加载完毕了,不管图片和iframe中的内容是否加载完毕,此法都有效。
如果有多个js文件绑定了document.ready事件,为了防止浏览器重复绑定,同时有序执行,可以引入一个事件队列机制来解决。
以上就是document.ready事件的原理和兼容性问题,下面贴段实例代码,为了方便理解执行过程,使用函数封装的模式,执行过程都写在注释里了,如果有不妥之处欢迎指教。
”defer”后,那么a.js中的内容就必须等页面加载完毕后才能执行了--
eventQueue = [];//保存domReady的事件队列
isReady = false;//判断DOM是否加载完毕
isBind = false;//判断DOMReady是否绑定
?
/*执行domReady()
?*@param??? {function}
?*@execute? 将事件处理程序压入事件队列,并绑定DOMContentLoaded
?*? 如果DOM加载已经完成,则立即执行
?*/
function domReady(fn){
????if (isReady) {//如果dom已经加载完毕,则直接执行事件处理程序
????????fn.call(window);
????}else{//如果dom没有加载完毕,则将事件处理程序放入事件队列中
????????eventQueue.push(fn);
????};
????bindReady();//绑定DOMContentLoaded事件
};
?
/
您可能关注的文档
- Jabber系统用户使用手册解析.docx
- java web 电子教案第四章解析.ppt
- Java web开发概述解析.ppt
- Java web基础环境搭建解析.ppt
- jason地震反演软件培训解析.ppt
- Java 反射和动态代理解析.docx
- JAVA 课程设计蜘蛛纸牌报告终极修改版解析.doc
- javascript入门到精通4解析.ppt
- Java+mysql系统部署手册解析.doc
- javaJSP开发平台解析.ppt
- 2025年山东省东营市行政职业能力测验题库推荐.docx
- 2025年山东省威海市行政职业能力测验模拟试题附答案.docx
- 2025年山东省东营市行政职业能力测验模拟试题附答案.docx
- 2025年山东省东营市行政职业能力测验模拟试题必考题.docx
- 2025年山东海事职业学院单招职业倾向性考试题库必威体育精装版.docx
- 博士研究生科研创新能力提升项目(社科类)申报书.doc
- 2025年山东服装职业学院单招职业倾向性测试必刷测试卷附答案.docx
- 2025年山东服装职业学院单招职业技能考试题库附答案.docx
- 2025年山东海事职业学院单招职业倾向性考试必刷测试卷附答案.docx
- 2025年山东城市服务职业学院单招职业适应性测试必刷测试卷附答案.docx
最近下载
- 黄元御《四圣心源》译读要点.doc VIP
- 6.螺杆式冷水机组(含风冷螺杆式冷热水机组)用户需求URS-1.doc VIP
- 农贸市场运营方案设计.ppt VIP
- 高考英语图表作文公开课课件讲义资料.doc VIP
- 测绘资质分级标准.pdf VIP
- 铁矿矿石的物化性质与实验分析考核试卷.docx VIP
- 2019年冀教版七年级数学下册期末考试试卷.pdf VIP
- (高清版)DB34∕T 4095-2022 高速公路建设项目电子源文件同步归档指南.pdf VIP
- 2025年河北石家庄市市属国有企业公开招聘应届毕业生223名笔试模拟试题及答案解析.docx VIP
- 初中语文教学总结.docx VIP
文档评论(0)