SPA是什麼?
全稱是單頁面應用。瀏覽器
一個SPA就是一個WEB應用,它所需的資源(HTML CSS JS等),在一次請求中就加載完成,也就是不需刷新地動態加載。緩存
用術語「單頁」就是由於頁面在初始化加載後就永遠不會從新加載刷新。服務器
優勢:
減輕服務器端的壓力。網絡
由於服務器先將一份包含了靜態資源、JavsScript和模板的靜荷數據(payload)發送到了客戶端,以後客戶端只須要獲取渲染頁面或視圖所須要的數據便可。
payload就是起關鍵做用的資源單元測試
提升了頁面的渲染效果。測試
因爲移動設備的流行,能夠開發提供JSON格式數據的網絡服務,而後能夠提供不一樣的客戶端使用。spa
SPA的使用,咱們可使用一個HTTP API,一個HTTP API相比在服務端渲染一個HTML頁面有諸多好處,這樣就能夠很方便的進行單元測試等操做,還能夠被其餘不少客戶端程序所用。ip
SPA最大的好處就是大量的工做都在瀏覽器中完成,服務端承擔更少的工做,這樣就能夠處理更多的請求。同時SPA須要額外的請求模版開銷,咱們能夠經過預編譯模版、緩存機制和將多個模板拼接成一個大的模板來減小請求數量。資源
缺點:路由
首屏加載時間會很長。
SEO不友好。
主要是由於SPA利用了hash片斷實現路由,而利用hash片斷不會做爲HTTP請求中的一部分發送給服務器。
而SPA使用hash片斷的目的是:當片斷的內容發送變化時,瀏覽器不會像URI發送變化時那樣發起新的網絡請求。這樣就能夠只請求頁面或視圖渲染所須要的數據,而不是爲每個頁面獲取並解析整份文檔。