單頁應用 | 單頁應用
單頁式應用程式(英語:single-pageapplication,縮寫SPA)是一種網路應用程式或網站的模型,它透過動態重寫當前頁面來與使用者互動,而非傳統的從伺服器重新載入整個新頁面。這種方法避免了頁面之間切換打斷使用者體驗,使應用程式更像一個桌面應用程式。在單頁式應用程式中,所有必要的代碼(HTML、JavaScript和CSS)都透過單個頁面的載入而檢索[1],或者依需(通常是為回應使用者操作)動態載入適當的資源並添加到頁面。儘管可以用位置雜湊或HTML5歷史API來提供應用程式中單獨邏輯頁面的感知和導覽能力,但頁面在過程中的任何時間...
單頁式應用程式(英語:single-page application,縮寫SPA)是一種網路應用程式或網站的模型,它透過動態重寫當前頁面來與使用者互動,而非傳統的從伺服器重新載入整個新頁面。這種方法避免了頁面之間切換打斷使用者體驗,使應用程式更像一個桌面應用程式。在單頁式應用程式中,所有必要的代碼(HTML、JavaScript和CSS)都透過單個頁面的載入而檢索[1],或者依需(通常是為回應使用者操作)動態載入適當的資源並添加到頁面。儘管可以用位置雜湊或HTML5歷史API來提供應用程式中單獨邏輯頁面的感知和導覽能力,但頁面在過程中的任何時間點都不會重新載入,也不會將控制轉移到其他頁面。[2]與單頁式應用程式的互動通常涉及到與網頁伺服器後端的動態通訊。
儘管早在2003年就討論過這個概念,但單頁式應用程式(single-page application)一詞的起源並不明晰。[3]Stuart (stunix) Morris在2002年4月編寫的自主網站slashdotslash.com有著相同的目標和功能[4];同年稍晚,Lucas Birdeau、Kevin Hakman、Michael Peachey和Evan Yeh在美國專利8,136,109中描述了一個單頁式應用程式的實作概念。[5]
在網頁瀏覽器中可以使用JavaScript顯示使用者介面(UI)、執行應用程式邏輯,以及與Web伺服器通訊。成熟的開源程式庫支援構建一個單頁式應用程式,從而減少開發人員要編寫的JavaScript代碼量。
技術舉措[編輯]現今已有各種技術可以使網頁瀏覽器停留在單個頁面,並同時支援應用程式與伺服器通訊。
JavaScript框架[編輯]諸如AngularJS、Ember.js、Meteor.js、ExtJS和React等網頁瀏覽器端的JavaScript框架採納了單頁式應用程式(SPA)原則。
AngularJS是一個全面的客戶端側框架。其模板基於雙向UI資料繫結。資料繫結是一種自動方法,在模型改變時更新視圖,以及在視圖改變時更新模型。其HTML模板在瀏覽器中編譯。編譯步驟建立純HTML,瀏覽器將其重新彩現到即時視圖。該步驟會在隨後的頁面瀏覽中重複。在傳統的伺服器端HTML編程中,控制器和...