android 微信是如何實現(xiàn)即時更新好友頭像的
問題描述
微信好友的頭像肯定是做緩存的,那么好友頭像修改后,用戶這邊是如何實現(xiàn)立即就能看到修改后的頭像的呢?
問題解答
回答1:如果要做到實時更新:就需要使用推送,A修改頭像之后,通知服務(wù)端,服務(wù)端再對A的好友進行推送通知更新A的頭像。
回答2:先拉取的肯定是頭像url啊,本地緩存是根據(jù)url做的,本地每次都拉取頭像url然后通過加載模塊去加載的時候會判斷當(dāng)前緩存的圖片是否與此url一致,不一致才會通過新的url去下載。
回答3:數(shù)據(jù)庫中保存一個字段:上次頭像修改時間.
回答4:推測一下,括號里的過程是瞎猜的:用戶A上傳新頭像→服務(wù)器處理新頭像→將新頭像URL存儲到用戶表的某個字段里,記載更改時間(→同步頭像到CDN→更新用戶表的頭像URL字段,記載更改時間)→服務(wù)器向在線的客戶端發(fā)推送→客戶端更新頭像。
回答5:猜測一下,可以設(shè)置一個標(biāo)識字段,默認(rèn)為0,用戶更新頭像時把它置為1,在推送消息或定期同步時,同時推送這個標(biāo)識。手機在處理消息或定期同步聯(lián)系人信息的同時,判斷這個標(biāo)識,如果標(biāo)識為1,說明好友上傳了新頭像,這時候再GET請求拉取新頭像并緩存在本地,同時更新服務(wù)器端標(biāo)識為0,防止下一次同步時重復(fù)請求頭像。(PS:只是一點個人的想法。)
相關(guān)文章:
1. atom開始輸入!然后按tab只有空格出現(xiàn)沒有html格式出現(xiàn)2. javascript - js setTimeout在雙重for循環(huán)中如何使用?3. javascript - vue-cli npm run build編譯報錯4. mysql - 這種分級一對多,且分級不平衡的模型該怎么設(shè)計表?5. mac里的docker如何命令行開啟呢?6. javascript - 有適合開發(fā)手機端Html5網(wǎng)頁小游戲的前端框架嗎?7. java - 創(chuàng)建maven項目失敗了 求解決方法8. python - pip install出現(xiàn)下面圖中的報錯 什么原因?9. java - 線上應(yīng)用,如果數(shù)據(jù)庫操作失敗的話應(yīng)該如何處理?10. php - MySQL數(shù)據(jù)庫設(shè)計,獲取點贊的人數(shù)
