用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

一般比较保险的做法是,将需要改变网页内容的JavaScript放在页面加载完成之后再去执行。

为了防止文档尚未加载完全,运行JavaScript时出现找不到节点,然后报错,导致整个页面出错。

在jQuery中的写法是

$(document).ready(function{

console.log('页面加载完成');

});

相当于调用了下jQuery的ready函数,给ready函数传入的参数,也是一个函数。jQuery会判断在网页加载完成之后,开始调用执行我们传入的这个函数。

原生JavaScript的写法是

document.ready=function(){

console.log('网页加载完成');

};

用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

通过jQuery的load函数加载的页面内容,为什么js就失效了呢?

用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

通过load函数加载的内容

js是有效的, 并不会失效, 当然这跟怎么用load的一些细节有些关系

下面举个实例, 可以看到js是有效的, 请看下面视频演示

具体怎么实现的呢, 下面看实际代码

首先准备2个html页面

demo_js_load.html : 这个是主运行页面, 用来实现功能

用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

demo_js_load_ch.html : 这个是被加载的页面, 里面放了2种js代码以展示效果

用jQuery动态改写一个网页,最佳时机是在页面载入的哪个阶段?

然后运行demo_js_load.html就能看到被加载的页面中

自动运行的alert在被load成功后就运行

其内部的function函数testjs()也能被正常调用

贴出主要代码:

没加载数据前

这是被Load的内容

如果以上内容有不对的地方, 欢迎讨论

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

这个问题我之前刚看过。

他用的不是window.onload

$(document).ready是在页面加载完毕时执行回调

而window.onload是在页面全部加载完成时,包括一些资源比如图片。

所以window.onload比$(document).ready更延后一些。

window.onload自然不必说,是浏览器自身支持的。

但是$(document).ready我看了一下源代码。

他根据的是document.documentElement对象去判断的。

他每次调用document.documentElement.scrollLeft方法

如果此方法产生了异常,就说明scrollLeft无法执行,此时页面还未加载完成,

所以他就用try块包含这条语句,然后catch住,用setTimeout方法,重新执行一遍。

直到scrollLeft可以执行时,就说明页面加载完成了,此时再去回调。

很有意思。

"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论