2014-01-21 31 views
3

單頁面應用程序(SPA)在通常SPA必須發出多個請求以獲取頁面上不同部分的數據時應如何加快速度?與渲染服務器端相反,瀏覽器只需發出一個請求即可獲取整個頁面?爲什麼單頁面應用程序通常需要每頁更多請求才能更快?

我還記得在某些地方打開/關閉Web請求是Web請求中的瓶頸。

那麼,爲什麼每個頁面提出更多請求的方法會使網站更快?

回答

3

因爲你只加載你需要的東西。

例如,在「普通」網頁上,菜單,側邊欄等將不得不在每個頁面上重新渲染,但SPA只有內容被更改。

另外,想一想這種情況:在首頁顯示100,000個項目的網站(帶圖片)。通常情況下,加載頁面需要一定的時間,但通過SPA您只需加載「第一個屏幕」(即用戶可以看到的內容),然後在向下滾動時加載其餘的頁面。

換句話說,SPA並不神奇:它只是需要更新apge中發生變化的位,這會降低用戶的響應時間(即他們可以更快地「使用」新的聯繫人) 。

+0

製作http請求的開銷如何?我聽說某個地方,打開/關閉請求佔用了很大比例的請求時間。 (對不起,我在談話中聽到) – Glide

+0

您需要找到一個平衡點:顯然,最好是因爲開銷而做出一個「大」請求,而不是20個「小」請求。但是如果你對你的請求合理,http開銷並不是什麼大問題。 –

0

通常SPA都採用懶惰模式的方式構建:僅在需要時才獲取信息,如果需要的話。

另外,通常來自Spa和來自Spa的數據都是採用僅着重於數據的格式(例如json)。表示層是SPA的關注點,並且所有必需的資產都應該已經加載。

所以通常他們更快,更易於維護。

雖然並非總是如此。

1

如果做得很好,他們速度更快,因爲:服務器工作量

  • 部分偏移到客戶端。
  • 在任何給定的時間只加載所需的頁面片段。
  • 減少了冗餘模板代碼。一個模板可以設置多個項目的樣式,而不必一次輸出大量HTML。

它們還有助於延遲加載和在空閒時間下載新數據以及並行:併發下載元素。

相關問題