一,圖片體驗的優化。css
在手機上顯示圖片,速度是一個很是重要的體驗點,試想,若是您打開一個網站,發現裏面的圖片一直顯示失敗或者是x,稍微作得好一點的,多是一個不消失的loading或者是菊花等等,但無論如何, 沒能快速的拉取和展現圖片對用戶體驗是一個極大的挑戰。那麼,手機上的圖片體驗如何作呢?這裏筆者有些小總結:前端
1,減小圖片的大小。在失真度和圖片大小中作好折衷,儘可能利用工具減小圖片的size,也能夠考慮利用不一樣的圖片格式。緩存
2,減小圖片的請求數。能夠考慮把多個圖片利用相似css sprite的方式進行合併,這樣能夠加載一次便可;服務器
3,考慮緩存。對圖片在客戶端進行必定的緩存,設置好緩存時長和更新機制;架構
4,考慮使用cdn進行加載圖片,作到就近接入訪問;app
5,解決DSN劫持的問題。在手機業務上的經驗告訴咱們,極可能某些地區,某些運營商把咱們的域名封掉或者劫持了,這樣,圖片的域名解釋出來的IP卻不是咱們提供圖片服務的IP,而且這種狀況很難發現, 由於,若是運營商經過抽樣隨機劫持,就很難發現。異步
解決辦法有幾個思路:工具
.去掉dns,改爲直接訪問IP的方式,但須要解決根據用戶的ip獲取最近圖片服務的ip地址,實現上:這裏cgi在吐出訪問圖片的地址的時候,獲取用戶的來源網關IP,調用IP地址庫判斷來源IP所屬地和運營商,而後下發對應的圖片部署接入IP, 客戶端使用IP直連圖片服務器,快速的訪問資源。問題是,有實現成本,得業務本身去實現相似一個dns解釋的邏輯 ,特別是圖片放到cdn的話,這樣改造就沒法使用cdn帶來的加速服務能力。性能
.作好dns劫持的監控,實際上圖片dns解釋到的vip list確定是在咱們的一個白名單內,若是不是,則確定屬於dns劫持,客戶端能夠在某個時候拉取一下咱們的viplist,做爲監控和判斷是否dns劫持的問題,若是dns的ip地址 不在白名單內,則替換使用白名單內的ip進行訪問。優化
.考慮備用域名的方式,即若是一個域名拉取不到,改用備用域名進行訪問,固然若是備用域名也被劫持,那就不行了。