在我的索引頁面中,有一個div框顯示論壇上的最新帖子。 我希望它每10秒重新加載一次。x秒後重新加載內容
$(document).ready(function(){
while(1==1)
{
$("#lastPosts").delay(10000).load("showLastPosts.php");
}
});
這是個好主意嗎?有更好的方法嗎?
在我的索引頁面中,有一個div框顯示論壇上的最新帖子。 我希望它每10秒重新加載一次。x秒後重新加載內容
$(document).ready(function(){
while(1==1)
{
$("#lastPosts").delay(10000).load("showLastPosts.php");
}
});
這是個好主意嗎?有更好的方法嗎?
嘗試setInterval
代替:
$(document).ready(function(){
setInterval(function() {
$("#lastPosts").load("showLastPosts.php");
}, 10000);
});
既然你加載遠程內容,你也應該考慮一種可能性,即Ajax調用可以回來以不同的順序(不太可能,因爲你的時間間隔爲10秒)。爲了防止這一點,你可以使用setTimeout
和遞歸函數(如在MDN文章底部概述):
(function getLatestPosts(){
setTimeout(function(){
$("#latestPosts").load("showLastPosts.php", getLatestPosts);
}, 10000);
})();
擺脫'while'循環。你不想每次循環都產生一個新的定時器,是嗎? – Blender 2011-12-24 05:01:53
@Blender:只是一個錯字 - 它已被刪除。 – 2011-12-24 05:02:48
我想你可以與服務器進行通信,以獲取最新信息加載到DIV。所以應該考慮使用ajax。
$(document).ready(function(){
setInterval(function() {
$.ajax({
type : 'GET'
url: 'showLastPosts.php',
datatype: 'html',
success: function(data){
$("#lastPosts").html(data);
}
});
}, 10000);
});
['.load'](http://api.jquery.com/load/)是'.ajax'的縮寫。 – 2011-12-24 05:27:14
要加載哪裏正在讀取數據?你應該與服務器通信? – 2011-12-24 05:14:17