ext connection 失敗處理

2021-08-24 21:37:34 字數 2071 閱讀 3498

使用extjs進行開發系統時,客戶端功能相當豐富。大部門工作都是直接從伺服器獲取資料再送給widgets進行顯示出來。ext.ajax是繼承ext.data.connection而來,而ext.data.store在進行載入資料時都需要用到ext.data.connection。

ext.data.connection提供以下三個事件:

1、beforerequest  請求伺服器之前

2、requestcomplete 和服務通訊成功後

3、requestexception 請求失敗

而這三個事件分別在執行request、doformupload、handleresponse、handlefailure觸發,所以,重寫這四個函式就可以實現在請求服務過程中進行相關操作。

在這裡,大家可以先看一下以下幾個function   

解決辦法:

首先,在html檔案中加入如下**:

<

div 

id="load-ing"

>

載入資料中

div>

其loading-ing的css樣式如下:

#load-ing

通過extjs實現提示等待功能可以有以下兩種解決辦法:

一、可以監聽beforerequest  、requestcomplete 、requestexception 事件,在每次用到ext.ajax或ext.data.connection時都寫監聽函式。

此方向可以解決問題,但是,每次使用ext.ajax或ext.data.connection都需要寫監聽函式,這樣,重複工作較多。不可行

二、重寫ext.data.connection

重寫ext.data.connection的request、doformupload、handleresponse、handlefailure幾個函式,在執行這幾個函式之前選執行你的動作。**如下:

ext.override(ext.data.connection,),

handleresponse : ext.data.connection.prototype.handleresponse.createsequence(

function

()),

doformupload : ext.data.connection.prototype.doformupload.createsequence(

function

()),

handlefailure : ext.data.connection.prototype.handlefailure.createsequence(

function

())})

問題:在乙個頁面中同時執行幾個request函式時,當第乙個request執行完成後,「載資料中」將會被隱藏,而這時可能頁面還在和伺服器通訊。所以這種辦法並不能根據解決問題。於是想到了加入標誌的方法。

當執行一次ext.get('load-ing').show();時,標誌加一,當執行一次ext.get('load-ing').hide();時,標誌減一。**如下:

ext.override(ext.data.connection,),

handleresponse : ext.data.connection.prototype.handleresponse.createsequence(

function

()),

doformupload : ext.data.connection.prototype.doformupload.createsequence(

function

()),

handlefailure : ext.data.connection.prototype.handlefailure.createsequence(

function

())})

實現效果:

1、在於伺服器進行通訊時的提示如下:

啟動失敗 oracle啟動監聽失敗

我剛安裝的oracle,用命令啟動監聽,出現以下錯誤 c documents and settingsbaby lsnrctl start lsnrctl for 32 bit windows version 10.2.0.1.0 production on 25 10月 2009 14 57 08...

WAS 啟動失敗

今天伺服器停止後,再也起不起來了 admu3011e server launched but failed initialization.startserver.log,systemout.log or job log in z os and other log files under home d...

deepin更新失敗 無法更新,更新失敗

myhome myhome pc sudo apt get update sudo apt get dist upgrade sudo myhome 的密碼 e 無法獲得鎖 var lib apt lists lock open 11 資源暫時不可用 e 無法對目錄 var lib apt list...