我正在對一個執行一些昂貴操作的頁面(重新索引某些數據庫表)發出ajax請求。 這些需要時間,我想要顯示進度信息直到完成。多個AJAX響應
我該怎麼做?這可能嗎?因爲javascript等待頁面完成加載後才顯示所有消息...
我正在對一個執行一些昂貴操作的頁面(重新索引某些數據庫表)發出ajax請求。 這些需要時間,我想要顯示進度信息直到完成。多個AJAX響應
我該怎麼做?這可能嗎?因爲javascript等待頁面完成加載後才顯示所有消息...
每個請求返回一條消息。繼續發出AJAX請求,直到收到特定的「完成」響應。這就是推動或「COMET」如何在幕後工作,你也可以使用適當的推動技術。
這裏隱藏/暗示的一點是你不應該在頁面腳本上進行昂貴的操作。
一個簡單的解決方案是保持對數據庫中用作標誌的變量進行輪詢,例如,當昂貴的操作完成時,它會設置您正在輪詢的標誌。希望能幫助到你。
我會在你的主內容div中嵌套一個加載div。將背景圖像設置爲AJAX加載器(您可以下載here)。當你點擊你指定的任何按鈕時,加載div將顯示,你的主要內容將有一個額外的CSS選擇器名稱。你可以使不透明度爲0.5或任何你想要的.main-content.loading。這裏是jQuery的:
$(".button").click(function(){
$(".main-content").addClass(".loading");
$(".main-content .loader").show();
$.ajax({
data: //whatever data,
type: "POST",
url: // whatever url,
success: function(d){
$(".main-content").removeClass(".loading");
$(".main-content .loader").hide();
$(".enter-content").html(d);
}
});
});
jQuery UI的有如何使用它的例子一個相當不錯的進度條:http://jqueryui.com/demos/progressbar/