本節書摘來自異步社群《單頁web應用:javascript從前端到後端》一書中的第1章,第1.3節,作者:【美】michael s. mikowski , josh c. powell 譯者: 包勇明 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
單頁web應用:javascript從前端到後端
現在已經建構了第一個單頁應用,相對于傳統網站,我們認為單頁應用的主要好處是:它提供了更加吸引人的使用者體驗。單頁應用可以做到一舉兩得:桌面應用的即時性以及網站的可移植性和可通路性。
單頁應用可以和桌面應用一樣渲染——單頁應用隻需重繪界面上需要變化的部分。相比之下,傳統網站的許多使用者操作都會重繪整張頁面,結果是當浏覽器從伺服器擷取資料的時候,頁面會假死并有“閃爍”現象,然後再重繪頁面上的所有東西。如果頁面很大,伺服器又繁忙,或者網絡連接配接很慢,這種“閃爍”現象會持續好幾秒鐘甚至是更長時間,使用者隻得猜測頁面什麼時候才可以再次使用。與單頁應用的快速渲染和即時回報相比,這是一種很恐怖的體驗。
單頁應用可以擁有和桌面應用一樣的響應速度——盡可能地把(臨時的)工作資料和處理過程從服務端轉移到浏覽器端,單頁應用由此把響應時間縮減至最小。單頁應用在本地擁有大多數需要決策判斷的資料和業務邏輯,是以是很快的。隻有資料驗證、授權和持久存儲必須要放在服務端,原因我們會在第6章到第8章中進行讨論。傳統網站的大多數應用邏輯在服務端,對大部分的使用者輸入的響應,他們必須等待一個“請求/響應/重繪”的循環周期。與接近即時響應的單頁應用相比,這需要花費幾秒鐘的時間。
單頁應用可以和桌面應用一樣,把它的狀态通知給使用者——當單頁應用确實必須等待伺服器的響應時,可以動态地顯示進度條或者繁忙訓示器,是以使用者不會因延時而困惑。相比傳統的網站,使用者實際上隻能猜測頁面何時加載完并可用。
單頁應用像網絡一樣,幾乎随處可以通路——不像大多數的桌面應用,使用者可以通過任何網絡連接配接和适當的浏覽器來通路單頁應用。如今,這一名單包括智能手機、平闆電腦、電視、筆記本電腦和台式計算機。
單頁應用可以像網站一樣即時地更新和釋出——使用者不需要做任何事就能明白它的好處:他們隻要重新加載浏覽器就行了。維護軟體的多個并存版本的麻煩在很大程度上消除了1。開發單頁應用的作者,在一天之内就能建構和更新很多次。桌面應用經常需要下載下傳并且安裝新版本需要管理通路權限,版本之間的間隔可能是很多個月或者很多年。
單頁應用和網站一樣,是跨平台的——和大多數的桌面應用不一樣,精心編寫的單頁應用可以在提供現代html5浏覽器的任意作業系統上運作。盡管這通常被認為是對開發人員的好處,但對很多同時使用多種裝置的使用者來說是非常有用的,比如工作時用windows,在家用mac,linux伺服器,android手機和amazon平闆電腦。
所有這些好處意味着,你可能會想把下個應用做成單頁應用。每次點選後都會重新渲染整張頁面的笨拙網站,容易日益疏遠富有經驗的使用者。精心編寫的單頁應用具有互動和快速響應的界面,還伴有通路網絡的功能,這将幫助我們把客戶留在屬于他們的地方:使用我們的産品。