我使用$ .get()從php腳本中獲取一些元素,然後通過將它們寫入div來顯示結果。這是定期完成的,以及當div被點擊或頁面重新加載時。代碼如下:
function fetchnew(){
var status = $J.cookie("status_on");
if (status == 'on'){
//fetch new items
//results from new-items.php have this format:
//<p>Item1</p><p>Item2</p>...
$J.get(modulebaselink+'new-items.php', '', function(newitems){
$J('#content').html(newitems);
updatestatus();
});
}
fetchnew_timeout = setTimeout('fetchnew();', refresh_rate);
}//end fetchnew()
function updatestatus(){
var status = $J.cookie("status_on");
if (status == 'on'){
//Show number of loaded items
var totalItems=$J('#content p').length;
$J('#status').html("Items ("+totalItems+")");
}
}
我的問題是#status內容在頁面重新載入後顯示一些延遲。當頁面加載時,我得到'Items(0)'約1秒,然後0改變爲實際值。在顯示實際值之前,有什麼方法可以使'Items(0)'無效?或者至少,在'Items(new_value)'出現之前緩存先前的值並顯示'Items(old_value)'而不是'Items(0)'。我嘗試了Cookie來做最後一個,但是'Items(0)'再次出現...
我希望它可以工作,但不幸的是它沒有。 '項目(0)'仍然存在約1秒後頁面重新加載...感謝您的回答:) – CrisDeBlonde 2011-01-28 13:30:28