我知道我們可以在一些事件加載頁面的一部分。我也知道我們可以每隔指定時間加載整個網頁。但我想知道如何每30秒加載一頁的一部分。
回答
function refreshPage() {
$.ajax({
url: 'ajax/test.html',
dataType: 'html',
success: function(data) {
$('.result').html(data);
},
complete: function() {
window.setTimeout(refreshPage, 30000);
}
});
}
window.setTimeout(refreshPage, 30000);
使用setTimeout
的優點是,如果連接掛起一段時間,你不會得到噸掛起的請求,因爲前一個結束後一個新的纔會被髮送。
夥計沒有必要setTimeout第二次 – 2012-07-05 10:24:43
感謝ThiefMaster。 – 2012-07-05 10:26:07
@Random當然有。否則,您立即重新啓動下一個ajax調用。 – 2012-07-05 10:26:28
function load_content(){
setTimeout(function(){
$.ajax({
url: 'ajax/example.html',
dataType: 'html',
success: function(data) {
$('.result').html(data);
load_content();
}
});dataType: 'html',
},30000);
}
load_content();
在AJAX中使用'setInterval'是一個非常糟糕的主意。 – 2012-07-05 10:18:32
@FlorianMargaine你會怎麼做呢? – 472084 2012-07-05 10:19:24
'setTimeout'並在前一個請求成功或失敗後(即在'complete'回調中)創建一個新的超時時間(例如在'complete'回調中) – ThiefMaster 2012-07-05 10:19:37
如果您正在使用jQuery你可以使用load()方法
setInterval(function(){
$('#some-kinda-container').load('/some/kinda/url.html #bit-you-need');
}, 30000);
查看@ Jleagle的答案'的評論,看看爲什麼使用'setInterval'是一個非常糟糕的主意。 – 2012-07-05 10:21:56
如果你的ajax調用沒有在30秒內完成,你有更大的擔心比setInterval – 2012-07-05 10:23:03
它第一次不是約30秒,它是關於保持不變。如果你需要2秒才能得到迴應,你會在5分鐘左右重疊你的請求(沒有計算,但你明白了) – 2012-07-05 10:25:53
$(function() {
setInterval(function() {
getData(); // call to function
}, 30000); // 30 seconds
});
// define your function here
function getData() {
var url ="/mypage.php?type=load_data";
var httpobj = $.ajax({url:url,async:false}); // send request
var response = httpobj.responseText.trim(); //get response
$('#myDiv').html(response); // display data
}
閱讀所有其他答案的評論。認真。 – 2012-07-05 10:40:16
- 1. 循環通過網頁列表每30秒(更新頁每30分鐘?)
- 2. 部分加載asp.net頁面
- 3. AJAX部分頁面加載?
- 4. ASP.NET登錄頁面加載非常緩慢需要30秒
- 5. 如何在每次頁面加載時更改html頁面部分
- 6. ajax從另一頁面部分加載
- 7. 僅在第一次加載時加載頁面的一部分
- 8. 如何加載當前顯示的HTML頁面的一部分?
- 9. 5分30秒
- 10. Ajax - 如何使頁面上的每個鏈接/表單僅重新加載該頁面的一部分?
- 11. 如何顯示加載頁面的一些n秒
- 12. rich:dataScroller如何每10秒切換頁面?
- 13. 每30分鐘獲取一個遠程頁面源碼
- 14. cron/wget - 每5小時30分鐘運行一次頁面
- 15. Android每隔30秒從url中加載圖片
- 16. Ionic 1,如何重新加載頁面的一部分,而不是整頁
- 17. coreservicesd/lssave每30秒寫一次
- 18. 每30秒更改一次iframe源。
- 19. 每30秒運行一次Android服務
- 20. AudioUnit每30秒錄製一次毛刺
- 21. 每30秒調用一次函數
- 22. 如何jQuery的。只加載頁面的特定部分?
- 23. 30分鐘後緩存頁面加載和刪除?
- 24. 加載HTML頁面並修改部分
- 25. Facebook粉絲頁面只部分加載
- 26. 從另一個文件加載頁面的一部分
- 27. Swift:UILabel和UIImageView加載8-30秒
- 28. 如何使用JavaScript每30秒重新加載異地圖像源?
- 29. 如何在頁面加載後執行JavaScript程序30
- 30. 一個I幀我需要刷新每30秒(而不是整個頁面)
如果您使用AJAX,則可以使用'setInterval()'函數調用AJAX方法。 https://developer.mozilla.org/En/Window.setInterval – antyrat 2012-07-05 10:15:43
@antyrat使用'setInterval'和AJAX是一個非常糟糕的主意。 – 2012-07-05 10:18:14
@FlorianMargaine,這有什麼好主意? – 2012-07-05 10:18:46