我有一个页面上的PHP将输出一个相当大的股利,其中有很多组件。处理该div的JS几乎立即开始,但是存在与加载bigDiv和处理它的脚本相关的时间问题。jQuery.ready()函数等待多久?
所以,我申请这样的代码来处理它准备好()
var bigDiv = $(document).find('#bigDiv');
bigDiv.ready(function{
//some code here
});
现在的问题是,如果bigDiv
需要很长的时间才能出现,多久ready()
功能等待?如果bigDiv
完全不显示呢?
因此,为了避免剧本等着吧,我申请了一个暂停,
因此我选择了这样的另一种方法:
var waitTimer = 0;
var lodTmout = 2000;
function chkDataLod(){
var bigDiv = $pH(document).find('#bigDiv');
if(bigDiv.length > 0){//find if bigDiv has content
bigDiv.ready(function(){//wait for bigDiv to load it's contents completely
//some code here
});
}else{
//chk for bigDiv after every 500 msec for 2000 msec
if(waitTimer === lodTmout){
return false;
}else{
waitTimer += 500;
setTimeout('chkDataLod();',500);
}
}
};
function _init(){
chkDataLod();
}
_init();
起初我想看看是否bigDiv的内容长度大于零。显示“未完成加载”的bigDiv时出现问题。所以我再次添加了.ready()
函数。我在bigDiv上有一些动画函数,我不想在它完全加载之前启动它。
这个bigDiv
从CDN加载,所以加载时序是变化的。有一天它花了差不多5秒的时间来加载。看到我自己的方法我知道它有问题。我正在使用setTimeout并准备好,都是。但我不确定凌如何等待。我试图看到它的文档,但无法清楚地找到它。
我该如何解决这个问题?
这个div通过ajax加载?我不清楚你为什么不使用jquery document.ready来处理这个问题。 – kinakuta
“$(document).ready(function(){});”可能会在所有页面控件创建完毕后开始。但是如果你正在谈论浏览器渲染它的另一个故事。 –
@kinakuta - 我无法使用document.ready(),因为我想在加载IT时立即显示bigDiv。我不能等待整个页面加载,因为它可能需要太多时间。 – Shades88