单页应用 vs 多页应用
web項目可分為單頁應用 和 多頁應用。單頁應用,就是只有一個頁面,其他內容,估計就是動態加載,用從加載其他頁面片段 + 請求后臺 這種方式來完成。這么一說,我之前做的,其實都是多頁應用。
相比之下,
單頁應用的優缺點
單頁應用的優勢是什么呢?
1、頁面切換非常快,不會出現白屏,還可以作出過渡效果2、公用的js和css一次性加載,不浪費3、良好的前后端分離,服務器端只管響應數據請求,不用關心頁面渲染,壓力小,API重用性高缺點呢?
1、首次加載慢。不難理解,這么多東西要一下子加載,當然慢了。加載出來就好了。2、不利于SEO。其實,如果不是互聯網項目,可忽略不計3、復雜,對開發要求高。也好理解,這么多東西,都擠在一個頁面上,怎么控制,怎么加載,十分考驗工夫。依我看,前2條都不是什么大問題,就是問題3,可能會限制單頁應用用于復雜系統。我沒有開發過單頁應用系統,但按我的理解,在大型、復雜的系統中,不宜采用單頁應用。單頁應用,最適合手機端,但從目前來看,手機端的應用,都比較簡單。也有可能出現一種混合模式,即一個大型應用,會由多個單頁應用來構成。
單頁應用的意義
速度快,體驗好這些不是最明顯的優勢,多頁應用努力一下,也能接近這個目標。我認為單頁應用最大的意義是使得前后端分離真正可以落地。曾幾何時,我從網上習得“前后端分離”一詞,躍躍欲試,蠢蠢欲動,搞了一把前后端分離,結果發現,頁面重用簡直就是惡夢,因為瀏覽器實在是太弱了,什么模板頁之類的東西,其實都需要服務器來完成。之后我認為,所謂的前后端分離,要界定究竟什么是前后端?前端除了瀏覽器,其實還包括服務器端運行的控制器。(見拙作:前后端分離)
但如果是單頁應用,就不一樣了。沒有所謂模板這個概念,只有一個頁面,其余都是片段。服務器真的就是與渲染解耦,一心只負責數據響應就好。不過,工作只是由后端轉移到了前端而已。據說單頁應用,前端開發人員要多于服務器端。你看看,控制器,視圖嗎,數據層,不亦樂乎,開心就好。
本質上,單頁應用就是一個富(肥)客戶端。事物都是螺旋式發展的。2000年的時候,CS應用如日中天,BS架構應用方興未艾,但是BS架構當時的缺點是性能不高,ajax技術剛出來,并未普及,體驗也遠遠比不上CS的好。但那時CS和BS之爭已經如火如荼,微軟還出了個折中的產物:智能客戶端。智能客戶端就是個CS結構應用,但是它會自動更新,一定程度上彌補了CS部署更新工作量大的問題。后來的發展大家都看到了,CS日趨式微,BS成為霸主。當然啦,還是有flash啦、silverlight啦這類偽BS的富客戶端技術做無謂的掙扎,曇花一現,也同樣被拋棄。沒想到,10年一輪回,現在,單頁應用這種既是BS又是富客戶端的模式出來了。
有點意思。
總結
以上是生活随笔為你收集整理的单页应用 vs 多页应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 OpenCV 和 Python 从
- 下一篇: 何谓南桥与北桥