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

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

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

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