2011-07-26 64 views
0

我的網站開發項目通過JSON和AJAX加載了大量內容(這些內容基本上不是相同的東西)。改善所有頁面加載的jQuery UI ajax加載對話框

我已經在jQuery UI對話框中實現了一個加載gif彈出窗口。這是連接到.ajaxStart.ajaxStop事件。

$(document).ready(
     function() { 
      $(window).load(function() { Load(); }); 
.... 

function Load() { 
.ajaxStart(function() { 
//Show popup 
} 
.ajaxStop(function() { 
//Hide popup 

}

因此,這是相當不錯的,而且每當我通過AJAX加載內容加載彈出出現。大。我的下一個問題是 - 即時獲得的反饋 - 他們認爲這個內容有加載的奇怪現象,但是當您在Web應用程序中請求整個新頁面時,「加載」需要一段時間,並且沒有加載對話框像其他ajax加載示例一樣。就我個人而言 - 這非常合理,但用戶不喜歡它。

有沒有簡單的方法可以將我的對話框連接到頁面加載?我想如果有一種方法可以知道/ jquery事件,當他們請求一個新頁面時,我可以彈出加載對話框並將其保留在那裏,直到加載新頁面。

感謝任何建議?

謝謝。

回答

2

當然,請查看卸載事件。 http://api.jquery.com/unload/

所以真的只是扔掉

$(window).unload(function() { Load(); }); 

在文檔準備就緒,當用戶導航到一個新的頁面,它會顯示彈出(可能需要自定義它,因爲你不需要任何Ajax請求考慮到你沒有動態加載任何數據)。

+0

其實,這個工程在Firefox中,但不是在IE中!?!? - 我使用相同的代碼來構建模式窗口 - 它顯示在IE瀏覽器的Ajax負載,但由於某種原因 - IE似乎不喜歡玩卸載事件......嗯mmmmmm ....... – baron

+0

所以卸載工作 - 我把警報 - 但它不會讓jquery ui代碼加載'$(「#dialog」)。dialog('open');'(但僅限於此事件 - 它適用於.ajaxStart !?!?) - 在兼容模式下解決IE8的任何想法 – baron

0

在加載下一個頁面之前,您不能離開加載對話框,因爲在卸載當前文檔和加載下一個頁面之間通常存在相當大的差距。

如果您的網站完全是ajax,那麼您可以做到這一點,但是讓一個網站完全依靠ajax驅動需要注意細節(後退按鈕支持,書籤,事件等),所以我會考慮三次關於路徑。