優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

桌面網(wǎng)站為什么大部分沒(méi)有采用單頁(yè)應(yīng)用 (SPA) 模式?

SPA的優(yōu)點(diǎn)是什么?減少資源重復(fù)請(qǐng)求,提升二級(jí)頁(yè)面的打開(kāi)速度,這一點(diǎn)對(duì)于移動(dòng)3G這種弱網(wǎng)環(huán)境尤其有效,從而提升用戶體驗(yàn)。
SPA的缺點(diǎn)是什么?不利于SEO,首屏打開(kāi)速度更慢。同時(shí),與業(yè)務(wù)模塊之間的關(guān)聯(lián)緊密,不好拆分。對(duì)于桌面網(wǎng)站,大都跑在網(wǎng)絡(luò)環(huán)境較好的情況下,優(yōu)勢(shì)并不明顯,而劣勢(shì)卻完全凸顯。SSR可以部分解決問(wèn)題,但是SSR性能并非最優(yōu),并且成本也不低。因此算不上最優(yōu)解。而且很多桌面網(wǎng)站在SPA技術(shù)之前就已經(jīng)搭建好了,相關(guān)的技術(shù)問(wèn)題也成熟并夠用,配合Gulp之類的也能很好解決工程化的問(wèn)題。

SPA框架要實(shí)現(xiàn)得優(yōu)雅,離不開(kāi)現(xiàn)代化的API(瀏覽器特性或語(yǔ)言特性)。對(duì)此,移動(dòng)端的環(huán)境比桌面端好不少,很多桌面端網(wǎng)站的兼容性要求的包袱大大限制了框架的應(yīng)用。SPA框架的歷史比絕大部分桌面網(wǎng)站的歷史短,網(wǎng)站還沒(méi)發(fā)展到需要被SPA革命的時(shí)候,后接手項(xiàng)目的開(kāi)發(fā)者的重構(gòu)動(dòng)力還沒(méi)達(dá)到非得使用SPA的程度。
國(guó)內(nèi)微信和 QQ 等應(yīng)用內(nèi)置瀏覽器(至少 iOS 是這樣)的毒瘤屬性,如果你是用 pushState 改變的 url,那么分享出去的時(shí)候還會(huì)是最初點(diǎn)進(jìn)去的那個(gè) url,這就導(dǎo)致,如果你想讓你的內(nèi)容能被正確分享,不要分享出去的時(shí)候以為是 A,結(jié)果別人點(diǎn)開(kāi)是 B,那么你至少對(duì)「具體內(nèi)容頁(yè)面」(比如一篇文章、一個(gè)帖子)不能采用框架內(nèi)部路由,而只能用最原始的 href 改變 url。很多網(wǎng)站沒(méi)有做成SPA并不是技術(shù)原因,而大多數(shù)是業(yè)務(wù)劃分和遺留代碼的問(wèn)題。
很多網(wǎng)站不同的業(yè)務(wù)或者產(chǎn)品對(duì)應(yīng)不同的業(yè)務(wù)和開(kāi)發(fā)部門,因此他們會(huì)獨(dú)立開(kāi)發(fā)自己業(yè)務(wù)的網(wǎng)頁(yè)(目前基本上都選擇SPA了),然后再去和主站集成,這里“集成”一般都會(huì)直接在主站添加入口鏈接。有時(shí)候選擇多頁(yè)面模式也是刻意為之,如果業(yè)務(wù)復(fù)雜多樣,在一個(gè)SPA上加載太多東西勢(shì)必會(huì)影響網(wǎng)站性能,將不同業(yè)務(wù)做成多個(gè)SPA,對(duì)用戶體驗(yàn)影響并不大,但是會(huì)簡(jiǎn)化業(yè)務(wù)的獨(dú)立開(kāi)發(fā)、部署和維護(hù)。
另外就是遺留代碼的問(wèn)題。前端技術(shù)更新太快,一般新成立的項(xiàng)目都會(huì)選擇使用新的框架語(yǔ)言,遺留代碼都是舊的技術(shù)問(wèn)題,如果想要做成SPA,那意味要在一個(gè)頁(yè)面加載多個(gè)框架,必然會(huì)影響性能,因此會(huì)選擇多頁(yè)面,然后再做舊頁(yè)面到新頁(yè)面的遷移。
目前比較多被提及的前端微服務(wù)化,是希望多個(gè)前端服務(wù)能夠整合到一個(gè)SPA上,但是由于技術(shù)問(wèn)題目前還是有局限。網(wǎng)站設(shè)計(jì)的相關(guān)東西都是不斷更新的,如果出現(xiàn)一些新的東西也有可能沒(méi)有那么快適用,所以還要選擇合適的。
本文地址:http://cdrpkj.cn//article/2442.html
相關(guān)文章:
最新文章: