使Instagram.com更快的三個步驟:預取資料、推送資料和使用快取 -Instagram Engineering
近年來,instagram.com發生了許多變化-我們推出了故事,過濾器,建立工具,通知和直接訊息傳遞,以及許多其他功能和增強功能。但是,隨著產品的增長,副作用是我們的網路效能開始下降。在過去的一年中,我們做出了有意識的努力來改善這一狀況。到目前為止,這項持續不斷的工作已使我們的Feed頁面載入時間累計提高了近50%。這一系列部落格文章將概述我們所做的一些工作,這些工作導致了這些改進。
在第1部分中,我們討論了使用JavaScript,XHR和影象預取資料:
<link rel="preload" href="/static/FeedPageContainer.js" as="script" type="text/javascript" /> |
在第2部分中,我們討論了通過直接將資料推送給客戶端而不是等待客戶端請求資料來提高效能。使用早期重新整理和漸進HTML推送資料
在第3部分(點選標題進入)使用快取:
- 在頁面載入時,我們傳送對新資料的請求(或等待其推送)
- 建立Redux狀態的分段子集
- 在請求/推送未決期間,我們儲存所有排程的動作
- 請求解決後,我們會將操作與新資料以及所有待處理的操作一起應用到暫存狀態
- 提交暫存狀態後,我們只需用暫存狀態替換當前狀態即可。
第4部分中,將介紹如何通過程式碼大小和執行優化來減少程式碼庫的大小並提高其效能。
相關文章
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- 使用Redis和Java進行資料庫快取 - DZone資料庫RedisJava資料庫快取
- 使用Redis和Java進行資料庫快取RedisJava資料庫快取
- Web快取知多少(快取機制和資料儲存)Web快取
- 使用 Infinispan 快取功能支援多個 Redis 資料庫快取Redis資料庫
- Python爬蟲精簡步驟1 獲取資料Python爬蟲
- 報表資料的可控快取快取
- 清除 Electron 中的快取資料快取
- 微服務間如何選擇推送和拉取資料微服務
- 清除 Nuxt 資料快取:clearNuxtDataUX快取
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- 資料預取小輪子
- 【UniApp】-uni-app-資料快取APP快取
- Python操作Redis快取資料庫PythonRedis快取資料庫
- 前端快取API請求資料前端快取API
- 微信清除快取資料方法快取
- 淺談微信小程式用setStorage和getStorage快取和獲取資料微信小程式快取
- 使用EHCACHE三步搞定SPRING BOOT 快取Spring Boot快取
- 清理C盤快取,清理電腦C盤快取垃圾的操作步驟快取
- Android使用Camera2獲取預覽資料Android
- MYSQL---SQL語句的資料快取MySql快取
- Java基本資料型別和Integer快取機制Java資料型別快取
- Netflix 如何預熱快取?利用EBS移動PB級資料快取
- [20181119]firefox更改快取資料夾.txtFirefox快取
- Redis快取資料庫-快速入門Redis快取資料庫
- 從 0 學習 Spring 快取資料Spring快取
- [Redis] 02-快取和資料庫資料一致性問題Redis快取資料庫
- 分散式快取--快取與資料庫一致性方案分散式快取資料庫
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- 用於Electron/Nodejs的資料持久快取庫NodeJS快取
- 智慧資料視覺化的5個步驟視覺化
- 直播賣貨系統,使用資料庫查詢快取資料庫快取
- datatables使用ajax獲取資料
- 使用ajax指令碼取資料指令碼
- 如何保證快取和資料庫的一致性?快取資料庫
- 資料庫和快取的一致性如何保證資料庫快取
- 列舉資料庫快取使用場景例項和命令速查表資料庫快取
- 分散式快取--快取與資料庫強一致場景下的方案分散式快取資料庫