2015-01-13 32 views
0

我正在開發一個項目,我們被要求「打補丁」(他們不想花很多時間在開發上,因爲他們很快就會替換系統)一個在ExtJS 4.1.0下實現的系統。Extend Store類在ExtJS上加載後總是執行一個函數

該系統在非常緩慢和非穩定的網絡連接下使用。所以有時商店沒有得到預期的數據。

首先我想到的兩個問題是: 1.每次首次加載商店時,請等待5秒鐘後再試。大多數時候,頁面刷新修復了未加載商店的問題。

  1. 不知何故,檢查檢測到加載商店後沒有收到任何數據,並嘗試再次獲取它。

這個補丁應該只執行一次,以避免無限循環或不必要的遞歸,因爲有些時候沒關係,商店沒有得到任何數據。

我不喜歡這種解決方案,但它是客戶要求的。

回答

0

link應該幫助你的問題。

其中一個海報建議將下面的內容加入到ExtJs源代碼和您的應用程序代碼之間加載的overrides.js文件中。

Ext.util.Observable.observe(Ext.data.Connection); 
Ext.data.Connection.on('requestexception', function(dataconn, response, options){ 
    if (response.responseText != null) { 
     window.document.body.innerHTML = response.responseText; 
    } 
}); 

使用這個例子中,在任何錯誤,而不是附和在例如,你可以登錄後進行調試錯誤的詳細信息,並嘗試再次加載錯誤。我建議在此添加一些額外的邏輯,以便它只會重試一定次數,否則它可能在瀏覽器窗口打開時無限期地運行,並且很可能導致瀏覽器崩潰並給您的服務器增加額外的負載。

顯然問題的根本原因不在於代碼本身,而在於您的連接速度緩慢。我會盡力解決這個問題,而不是其他問題。

相關問題