问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jQuery 是如何判断HTML页面加载完毕的?它的原理是什么?

发布网友 发布时间:2022-04-21 00:48

我来回答

3个回答

热心网友 时间:2023-10-30 04:43

jquery是一个轻量级的JS框架,这点相信大部分人都听过,而jquery之所以有这样一个称呼,就是因为它悄悄披了一件外衣,将自己给隐藏了起来。

//以下截取自jquery源码片段(function( window, undefined ) {   /*    源码内容    */})( window );

上面这一小段代码来自于1.9.0当中jquery的源码,它是一个无污染的JS插件的标准写法,专业名词叫闭包。可以把它简单的看做是一个函数,与普通函数不同的是,这个函数没有名字,而且会立即执行,就像下面这样,会直接弹出字符串。

(function( window, undefined ) {
alert("Hello World!");
})( window );

可以看出来这样写的直接效果,就相当于我们直接弹出一个字符串。但是不同的是,我们将里面的变量变成了局域变量,这不仅可以提高运行速度,更重要的是我们在引用jquery的JS文件时,不会因为jquery当中的变量太多,而与其它的JS框架的变量命名产生冲突。对于这一点,我们拿以下这一小段代码来说明。

var temp = "Hello World!";
(function( window, undefined ) {       var temp = "ByeBye World!";
})( window );
alert(temp);

这段代码的运行结果是Hello而不是ByeBye,也就是说闭包中的变量声明没有污染到外面的全局变量,倘若我们去掉闭包,则最终的结果会是ByeBye,就像下面这样。

var temp = "Hello World!";//    (function( window, undefined ) {
var temp = "ByeBye World!";//    })( window );
alert(temp);

由此就可以看出来,jquery的外衣就是这一层闭包,它是很重要的一个内容,是编写JS框架必须知道的知识,它可以帮助我们隐藏我们的临时变量,降低污染。

热心网友 时间:2023-10-30 04:44

jquery在

当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件。
$(document).ready()是向window.load事件注册事件的替代方法
即利用window.load事件.你读一下jquery的源代码就可以看到.
window.addEventListener( "load", jQuery.ready, false );
注:我读的是jquery1.6版本的源码.

热心网友 时间:2023-10-30 04:44

这个问题我之前刚看过。
他用的不是window.onload
$(document).ready是在页面加载完毕时执行回调
而window.onload是在页面全部加载完成时,包括一些资源比如图片。
所以window.onload比$(document).ready更延后一些。

window.onload自然不必说,是浏览器自身支持的。
但是$(document).ready我看了一下源代码。
他根据的是document.documentElement对象去判断的。
他每次调用document.documentElement.scrollLeft方法
如果此方法产生了异常,就说明scrollLeft无法执行,此时页面还未加载完成,
所以他就用try块包含这条语句,然后catch住,用setTimeout方法,重新执行一遍。
直到scrollLeft可以执行时,就说明页面加载完成了,此时再去回调。
很有意思。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
清新早春古诗词四首(一树小梅花谢矣,又是落灯天气) 睡觉的时候是不是五蕴状态?梦境是不是中蕴状态? 做梦的句子很有道理 "梦中寻梦,梦非是梦。圆中求圆,圆中有圆"怎么理解? 怎样办焊工操作证? ...看漫画...已经下载了icomic...但是找了很久都没有漫画源..._百度知... ...可是不能打开,系统说你没有打开方式,怎么样才能打开??? 2+2+2=240移动一根火柴使得等式成立? 11+7=2如何只移动一根火柴使公式成立 怎么用PS给图片加边框 PS给图片加边框操作步骤 jquery怎么在加载完iframe的内容后才进行下一步操作 jquery 页面加载完成后多少秒 执行函数 js下拉刷新怎么做的js下拉刷新怎么做的快 jquery load事件(callback/data)使用方法及注意事项 jquery 中某一div被加载后触发事件,怎么写? jQuery如何实现页面加载完毕再去执行代码 jquery中页面加载事件有几种写法,$(function())是页面加载事件吗 jquery如何在页面加载完成后模拟出一个鼠标点击事件? jquery方法判断页面是否加载成功 jquery怎么判断页面加载完全 jQuery是什么? jquery 某个元素加载完成的事件是? 如何让Word文字自动适应单元格大小 公司电脑经常被攻击,担心一些重要的文件被窃取,有没有好的办法解决? 如何防止公司数据泄密? 如何防泄密文件泄密呢? excel表格如何才能够防止拷贝? 我们如何保障个人信息安全,个人信息应该如何保护? 为了EXCEL文件不泄密,如何制作 excel表格加密软件那种好用 如何用jquery判断css里的背景图片加载完成 【jquery】如何在数据加载完成后才自动执行函数? Jquery怎么等到iframe的内容加载完成之后再执行代码? EXCEL如何设置,使表格能自动调整列宽以适应文字长度 如何将Word表格中文字大小设置到适应单元格大小的步骤 为什么一个星期只有七天 一周为何是7天? 为什么一周有七天? 7天和7个工作日的区别 七天以里第七天算内吗? 为什么7天叫一个星期? 七天一共是多少小时 为什么一星期是7天 一星期七天是怎么由来的? 7天等于几年 一星期是7天是什么来的?各代表什么? 银行通知存款七天是什么意思 为什么一周要设为七天? 爱剪辑可以把图片做成视频吗 如何让WORD中的文字自动适应表格