ASP.NET 2.0 Ajax

來源:互聯網
上載者:User

在傳統的Web應用程式中,處理異常相對來說比較簡單——即使開發人員不作任何處理,瀏覽器也會預設地將收到的異常資訊顯示在瀏覽器中。而對於Ajax應用程式來說,事情卻並不那麼簡單。Ajax程式“非同步”的天性加上其後台啟動並執行行為,讓使用者乃至開發人員都很難判斷某次對伺服器的調用是否順利完成,瀏覽器自然也對Ajax程式運行時發生的異常無能為力。

在本章前面兩節中,藉助於 ASP.NET AJAX非同步通訊層的協助,我們已經能夠容易地從用戶端向伺服器端發起非同步HTTP請求——在理想情況下,這自然不會有問題,也足夠使用。然而,Web程式在運行中會有很多不確定性,從網路狀況的不穩定到開發人員的粗心大意,任何一個環節出了問題均會導致某次非同步呼叫以失敗告終。

因此,在ASP.NET AJAX非同步通訊層的實現中,自然也內建了對非同步呼叫時異常的處理方法。還記得前面曾經介紹過的在用戶端調用Web Service代理的文法嗎?

[NameSpace].[ClassName].[MethodName](param1, param2,..., callbackFunction)

在調用成功的回呼函數callbackFunction的後面,我們還可以提供另一個調用失敗的回呼函數。這樣,用戶端調用Web Service代理的文法就變為:

[NameSpace].[ClassName].[MethodName](param1, param2,..., onSucceeded, onFailed)

注意其中粗體部分新添加的onFailed回呼函數,該函數將在本次非同步通訊出現異常時由ASP.NET AJAX非同步通訊層調用。而onSucceeded的行為不會受到任何影響,仍將在成功調用後執行。

onFailed回呼函數將接受一個類型為Sys.Net.WebServiceError的參數,表示異常對象。其函數簽名將類似如下所示:

function onFailed(error) {
    // 取得異常資訊並處理。
  }

ASP.NET AJAX的用戶端Sys.Net.WebServiceError類型封裝了非同步請求伺服器時可能發生的異常,它提供了若干個唯讀屬性,提供了對異常資訊的詳細描述。Sys.Net.WebServ- iceError類型的屬性如表3-1所示。

表3-1 Sys.Net.WebServiceError類型的屬性

屬性 描述
exceptionType 擷取伺服器端異常的具體類型
message 擷取詳細的異常描述資訊
statusCode 擷取造成異常的HTTP響應的狀態代碼
stackTrace 擷取伺服器端異常的棧跟蹤資訊
timedOut 擷取一個布爾值,表示異常是否是由於網路連接逾時造成的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.