前言:「客戶端上傳時間戳」的玩法,你玩過麼?一起聊聊時間戳的奇技淫巧!,其實這個類似於資料版本號的東西。
登入時需要拉取什麼資料?問題二:能不能在登入的過程中不拉取這些資料,而在登入後拉取?問題三:能不能直接復用客戶端本地的資料?
答:不能直接復用客戶端本地的資料,因為不能確保本地的資料是最新的。
核心問題:每次登入都需要拉取,太費流量了,有沒有優化方法?
答:常用優化方法有兩種
(1)延遲拉取,按需拉取
(2)時間戳
問題五:延遲拉取,按需拉取為什麼有效?為什麼能夠減少拉取流量?問題六:哪些資料不登入後不一定會使用,可以延遲拉取?問題七:時間戳為什麼有效?為什麼能夠減少拉取流量?
答:本地資料不能直接使用的原因是,不確定資料是否最新,拉取伺服器時間戳與本地時間戳進行比對,如果本地是最新的資料,就能避免重新拉取。id列表資料的變化頻度是比較低的(增加id,減少id),時間戳機制非常的有效。
問題八:加入時間戳機制後,資料拉取流程有什麼變化?
答:假設有100個好友,以好友詳情資料的拉取為例,沒有時間戳之前,直接向伺服器拉取這100個好友的詳情資料。
在有了時間戳之後,資料拉取流程變為:
(1)先拉取100個好友的時間戳
(2)客戶端將100個好友的時間戳與本地時間戳對比,找出差異,假設有10個好友的資訊發生了變化,時間戳改變了
(3)拉取10個有變化的好友的資訊
優點是:大大減少了資料傳輸量(由拉取100個好友,降低到拉取10個好友)
缺點是:增加了一次網路互動(原來直接拉取,現在需要分別拉取時間戳與差異資料)
問題九:使用時間戳的同時,能否降低網路互動次數呢?
答:可以!
客戶端對時間戳的使用,往往採取「客戶端拉取時間戳」+「客戶端比對時間戳」+「客戶端再次拉取差異資料」的方式進行,「時間戳比對」的的cpu計算發生在客戶端,其實,這個計算可以轉嫁到伺服器,步驟為:
(1)客戶端上傳100個好友的時間戳
(2)服務端收到客戶端上傳的時間戳,與最新時間戳對比,找出差異,假設有10個好友的資訊發生了變化,服務端可以直接將有差異的10個好友的資料返回
優點是:客戶端減少了一次網路請求
缺點是:比對時間戳差異的cpu計算由「端」轉嫁到了「雲」
**:
app優化之流量節省
前言 客戶端上傳時間戳 的玩法,你玩過麼?一起聊聊時間戳的奇技淫巧!其實這個類似於資料版本號的東西。登入時需要拉取什麼資料?問題二 能不能在登入的過程中不拉取這些資料,而在登入後拉取?問題三 能不能直接復用客戶端本地的資料?答 不能直接復用客戶端本地的資料,因為不能確保本地的資料是最新的。核心問題 ...
高併發之流量優化
1.通過referer或者簽名,可以檢測目標網頁訪問的 網頁,如果是資源檔案,則可以跟蹤到顯示它的網頁位址。一旦檢測到 不是本站即進行阻止或者返回指定的頁面。2.通過計算簽名的方式,判斷請求是否合法,如果合法則顯示,否則返回錯誤資訊。nginx模組ngx http referer module用於當...
app流量優化
首先最費流量的部分是新聞列表的獲取,由於我們的新聞列表是帶各種狀態和許可權的,如果進入新聞後退出,它的狀態和許可權可能就變了。因此沒有在本地快取網頁資料,每次都是新下的。首先看列印日誌,發現返回的資料,大量都是的 我們用的是七牛的伺服器,所有的字首都是一樣的,因此首先將資料庫儲存的由 修改為名字,前...