最近在用EXtjs做項目,在載入資料量特別大的時候會出現載入逾時現象,在FB下查看,原來是ext預設ajax請求30秒。
在網上搜到下面的解決方案,以備參考和其他人蔘考。
ExtJS做Ajax請求的時候,預設的相應時間是30秒,如果後來資料查詢時間超過30秒,ExtJS就會報錯。
這就需要修改ExtJS的逾時時間:
2種方法:
1:在Ajax請求的時候加:(timeout: 100000000)屬性
複製代碼 代碼如下:
Ext.Ajax.request({
url: 'foo.php',
success: someFn,
failure: otherFn,
timeout: 100000000,//default 30000 milliseconds
headers: {
'my-header': 'foo'
},
params: { foo: 'bar'}
});
Ext.Ajax.request({ url: 'foo.php', success: someFn, failure: otherFn, timeout: 100000000,//default 30000 milliseconds headers: { 'my-header': 'foo' }, params: { foo: 'bar' } });
2:在js開始時後加:Ext.Ajax.timeout = 180000;
複製代碼 代碼如下:
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = '../../common/ext3/resources/images/default/s.gif ';
Ext.Ajax.timeout = 180000;
vardateType;// 報表類型
Ext.onReady(function() { Ext.BLANK_IMAGE_URL = '../../common/ext3/resources/images/default/s.gif '; Ext.Ajax.timeout = 180000; var dateType;// 報表類型測試後發現,第一種設定無效,第二種設定有效。
太忙的關係,就先測試到這裡,覺得最應該做的還是去最佳化資料庫,畢竟做個查詢,讓使用者等個3分鐘,肯定是讓人無法接受的。1分鐘都無法接受。