单页应用 (SPA)
1.什么是單頁(yè)應(yīng)用?
單頁(yè)Web應(yīng)用(single page web application,SPA),就是只有一張Web頁(yè)面的應(yīng)用,是加載單個(gè)HTML 頁(yè)面并在用戶與應(yīng)用程序交互時(shí)動(dòng)態(tài)更新該頁(yè)面的Web應(yīng)用程序。
單頁(yè)應(yīng)用的說(shuō)法是在JavaScript和AJAX技術(shù)比較成熟以后才出現(xiàn)的,指的是通過(guò)瀏覽器訪問(wèn)一個(gè)網(wǎng)站時(shí),只需要加載一個(gè)入口頁(yè)面,此后顯示的內(nèi)容和數(shù)據(jù)都不會(huì)再刷新瀏覽器頁(yè)面。有了單頁(yè)應(yīng)用之后,傳統(tǒng)的網(wǎng)站就被稱為多頁(yè)應(yīng)用了。
2. 單頁(yè)應(yīng)用和多頁(yè)應(yīng)用的區(qū)別
3.單頁(yè)應(yīng)用開(kāi)發(fā)流程
?4.單頁(yè)應(yīng)用開(kāi)發(fā)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)?
(1)?有良好的交互體驗(yàn)
能提升頁(yè)面切換體驗(yàn),用戶在訪問(wèn)應(yīng)用頁(yè)面是不會(huì)頻繁的去切換瀏覽頁(yè)面,從而避免了頁(yè)面的重新加載;
(2)前后端分離開(kāi)發(fā)
單頁(yè)Web應(yīng)用可以和 RESTful 規(guī)約一起使用,通過(guò) REST API 提供接口數(shù)據(jù),并使用 Ajax 異步獲取,這樣有助于分離客戶端和服務(wù)器端工作。更進(jìn)一步,可以在客戶端也可以分解為靜態(tài)頁(yè)面和頁(yè)面交互兩個(gè)部分;
(3)減輕服務(wù)器壓力
服務(wù)器只用出數(shù)據(jù)就可以,不用管展示邏輯和頁(yè)面合成,吞吐能力會(huì)提高幾倍;
(4)共用一套后端程序代碼
不用修改后端程序代碼就可以同時(shí)用于 Web 界面、手機(jī)、平板等多種客戶端;
缺點(diǎn)
(1)SEO難度較高
由于所有的內(nèi)容都在一個(gè)頁(yè)面中動(dòng)態(tài)替換顯示,所以在SEO上其有著天然的弱勢(shì),所以如果你的站點(diǎn)對(duì)SEO很看重,且要用單頁(yè)應(yīng)用,那么就做些靜態(tài)頁(yè)面給搜索引擎用吧;
(2)前進(jìn)、后退管理
由于單頁(yè)Web應(yīng)用在一個(gè)頁(yè)面中顯示所有的內(nèi)容,所以不能使用瀏覽器的前進(jìn)后退功能,所有的頁(yè)面切換需要自己建立堆棧管理,當(dāng)然此問(wèn)題也有解決方案,比如利用URI中的散列+iframe實(shí)現(xiàn);
(3)初次加載耗時(shí)多
為實(shí)現(xiàn)單頁(yè)Web應(yīng)用功能及顯示效果,需要在加載頁(yè)面的時(shí)候?qū)avaScript、CSS統(tǒng)一加載,部分頁(yè)面可以在需要的時(shí)候加載。所以必須對(duì)JavaScript及CSS代碼進(jìn)行合并壓縮處理;
總結(jié)
以上是生活随笔為你收集整理的单页应用 (SPA)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VS2022 .NET 特性重复
- 下一篇: pass parameters to v