使用AJAX技術開發新一代Web應用程式(4)

來源:互聯網
上載者:User
ajax|web|程式 由於網路潛力的不可預測性,這種可察覺的錯誤來來去去,並且測試應用程式的響應性也可能變得更為困難。因此,網路潛力是真實世界應用程式具有可憐的互動性的最通常的原因。
四、非同步用戶端

  在實際中,我們必須盡量使UI響應獨立於網路活動。幸好,一段固定時間的響應經常就足夠了,只要它是及時的。讓我們再次看一下實際中的問題。我的早上常式的主要任務之一是喚醒我的孩子們上學。我可以站在他們上面戳他們直到他們起床並穿上衣服,但這是一相當花費時間的方式,留下很長的一段時間我幾乎無事可做(圖8)。


圖8非同步響應使用者輸入順序圖表

  在這個順序圖表中,時間的過渡是垂直的。陰影部分的高度指示了我被阻塞進一步輸入的時間長度。

  我需要弄醒我的孩子,外盯窗戶,並且忽略了貓。孩子們將通知我-這時他們因要求吃早餐而被正確喚醒。就象伺服器端進程一樣,孩子們醒得很慢。如果我使用一個非同步用戶端模型,我將等待很長時間。只要他們能夠咕噥一聲,我就能醒來,然後我就可以繼續輕鬆地幹別的事情並且在需要時檢查他們。

  用電腦術語來說,我在此所做的是在一個獨立的線程中激發一個非同步過程。一旦啟動它們,我的孩子們就會在他們自己的線程中自己醒來;而我-父線程,不需要與他們同步,直到他們通知我(通常使用一個請求)。儘管他們正在醒來,但是我無法與他們的用戶端進行通訊,好象它們已經起床並穿好衣服了,但是我能確信它一定會及時發生的(圖9)。


圖9 一非同步響應使用者輸入順序圖表。如果我使用一個非同步輸入模型,我能讓孩子們通知我他們開始醒來。然後,當醒來發生時,我能繼續我的 另外的活動並且有一段很短的時間保持阻塞。

  無論使用任何UI,建立一非同步線程來處理任何冗長的計算並且讓它在後台運行,而使用者繼續處理其它事情都是一種很好的解決方案。當該線程啟動時,使用者必然被阻斷,但是這可能在很短的一段可接受時間之內發生。由於網路的潛力,一種不錯的實現是把任何RPC當作潛在的冗長過程並非同步地處理它。

  該問題和這種解決方案都是良構的。網路的潛力早已出現在老式的用戶端/伺服器模型中-這使得糟糕設計的用戶端在試圖到達一個過載的伺服器時滯留到令人無法承受的程度。在當今互連網時代,網路的潛力使得你的瀏覽器在web頁面間來回切換時經曆了巨大的挫敗。我們不可能消除這種潛力;但是我們知道通過非同步地處理遠程調用可以處理它,對不對? 

  不幸的是,對我們絕大多數web開發人員來說,並沒有捕獲到這一點。

  HTTP是一個要求-回應協議,該協議是單向的。用戶端可以聯絡伺服器,但是伺服器不能與用戶端開始一個通訊。確實,該伺服器不能從一次到另一次的請求中記住用戶端。

  多數使用現代語言如Java、PHP或.NET的web開發人員都會熟悉使用者會話的概念。HTTP按照它的最初設計良好地工作著,而且它已經被改編來實現更為靈活性的功能。然而,我們的非同步回調解決方案的關鍵在於用戶端被再次通知:當建立線程時是第一次而當線程完成時是第二次。直接的HTTP和經典web應用程式模型無法為我們完成這一點。

  如Amazon所使用的經典web應用軟體模型仍然是基於頁面概念設計的。一文檔被顯示給使用者-包含一個列表的連結和/或表單元素-它們允許它們提交給進一步的文檔。完全有可能以這種方式大規模地與複雜資料集互動,並且如Amazon和其它網站所展示的-完全可以基於這一經驗構建一種商業運作。
  • Ajax: 一個建立Web應用的新途徑
  • Ajax的錯誤處理機制探討(2)
  • Ajax的錯誤處理機制探討(1)
  • 初次體驗.NET Ajax無重新整理技術
  • Rails系統中的AJAX開發技術簡析(4)


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.