今天我正在玩DOM readyState
,我在JQuery.ready()
找到了一些奇怪的东西,
JQuery.ready()
事件发生在DOMContentload
事件之前,然后我将interactive
放入我的代码中
喜欢:document.readyState === "interactive"
然后这段代码在Jquery.ready()
之前加载所以,我有一个问题,是
JQuery.ready()
与document.readyState === "interactive
相同或相似?
以及JQuery在那里应用的技术.ready()事件?
我如何在我的纯Javascript中应用此.ready()
?
我阅读了很多相似类型的帖子,但没有人提供确切的解决方案来实现JQuery.ready()
在DOMContentload
之后.ready()
而不是{{1}}时加载的JavaScript。
答案 0 :(得分:1)
当我们浏览某些内容时,document.readyState
可以是以下之一:
loading
文档仍在加载。
interactive
该文档已完成加载,并且已对其进行了解析,但是仍在加载诸如图像,样式表和框架之类的子资源。
complete
文档和所有子资源均已完成加载。状态指示load
事件即将触发。
JQuery.ready()
不等于或类似于document.readyState === "interactive
,因为.redyState
返回字符串interactive
或loading
浏览器正在同步服务器中的数据返回complete
字符串并创建一个load
事件。
jQuery使用上述功能为其库创建doc.ready()
。
function myFun(){
// All your JS code which will use in your document
console.log("Hey now I am ready to run");
}
// just call the myFun() in a eventListene function as callback function
//the myFun will run after the
document.addEventListener('DOMContentLoaded', myFun, false);
const ready =(fun) => {
if(document.ready == 'interactive' || document.readyState =="complete"){
// calling function
setTimeout(fun, 1);
}
// we can also implement by event listner
else {
document.addEventListener("DOMContentLoaded", fun);
}
}
ready(() => {
// This is the functin whitch pass to the ready function
console.log("I am ready.")
});
嘿,我知道那不好,但是背后的想法是。
window.addEventListener('load',fn,false)
后退到:
document.addEventListener('DOMContentLoaded', fn, false);
后退到:
window.addEventListener('load', fn, false )
或对于较旧版本的IE,它使用:
document.attachEvent("onreadystatechange", fn);
window.attachEvent("onload", fn);