我有一個頁面上的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