Ajax實戰:Ajax的四個基本原則

來源:互聯網
上載者:User

我們用到的很多架構中都已經固化了基於頁面的傳統應用模式,同時這些應 用模式也已經深深進入了我們的思想中。我們花幾分鐘來揭示出哪些核心概念是 我們需要重新思考的,以及如何從Ajax的角度來重新思考。

瀏覽器中的是應用而不是內容

在傳統的基於頁面的Web應用中,瀏覽器扮演著啞終端[7]的角色。它對使用者 處於操作流程哪一階段一無所知。這些資訊全部都儲存在伺服器上,確切地說, 就是在使用者會話上。時至今日,伺服器端的使用者會話早已是司空見慣。如果你使 用Java或者.NET編程,伺服器端的使用者會話更是標準API的一部分——還有 Request、Response、MIME類型——沒有了它們簡直不可想象。圖1-11描繪了傳 統Web應用典型的生命週期。

當使用者登入或者以其他方式初始化一個會話時,系統會建立幾個伺服器端的 對象。例如,電子商務類型的網站需要建立表示購物車以及使用者身份證明的對象 。同時將瀏覽器網站的首頁呈現給使用者,這個HTML標記的資料流由模板檔案以及 特定於該使用者的資料和內容(例如該使用者最近瀏覽的商品列表)組成。

使用者每次和伺服器互動,都會獲得另一個文檔。在這個文檔中,除了特定於 該使用者的資料以外,包含的其他模板檔案和資料都是相同的。瀏覽器總是忠實地 丟棄掉老的文檔,顯示新的文檔,因為它是啞終端,而且也不知道還可以做些什 麼。

當使用者選擇退出或者關閉瀏覽器的時候,應用退出,會話消失。這個時候持 久層會把使用者下次登入後需要顯示的資訊儲存起來。Ajax則不同,它把一部分應 用邏輯從伺服器端移到了瀏覽器端,圖1-12描繪了這一情況。

圖1-11 傳統Web應用的生命週期。使用者和應用會話的所有狀態都保留在Web服 務器上。使用者在會話中看到的是一系列的頁面,每次頁面切換都不可避免地要到 伺服器上走一個來回

圖1-12 Ajax應用的生命週期。使用者登入後,伺服器交付一個用戶端應用給瀏 覽器。這個應用可以獨立處理很多的使用者互動,對於自己無法獨立處理的互動, 應用會以後台方式發送請求給伺服器,而不會打斷使用者的操作流程。

使用者登入的時候,伺服器交付給瀏覽器一個複雜得多的文檔,其中包含大量 的JavaScript代碼。這個文檔將會在整個會話的生命週期內與使用者相伴。在這一 過程中,隨著使用者與其互動,它的外觀可能會發生相當大的變化。它知道如何響 應使用者的輸入,能夠決定對於這些請求,是自行處理還是傳遞給Web伺服器(Web 服務器再去訪問資料庫或者其他資源),或者通過兩者結合的方式進行處理。

因為這個文檔在整個使用者會話中都存在,所以它可以儲存狀態[8]。例如,購 物車的內容可以儲存在瀏覽器中而不是伺服器的會話中。

相關文章

聯繫我們

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