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

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

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

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