日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络图片加载缓慢问题解决方案

發(fā)布時(shí)間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络图片加载缓慢问题解决方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本人最近開發(fā)的app是一款電視機(jī)頂盒android app,該app打開后會去向服務(wù)器求取各個(gè)位置的圖片,圖片內(nèi)容是服務(wù)器后臺事先上傳并配置好的。客戶端哪個(gè)頁面,哪個(gè)位置放哪張圖片,都是服務(wù)端配置的。所以app開啟后的2,3秒內(nèi)可能要請求十幾、甚至幾十張圖片,并快速顯示出來。通常情況下是沒有問題的,但是有個(gè)別情況圖片開始加載到全部加載完畢需要一二十秒,這個(gè)問題困擾了我好久。下面是我們的解決過程。

?

  • 首先懷疑網(wǎng)絡(luò)問題

服務(wù)器開發(fā)人員反復(fù)實(shí)驗(yàn)多次,無論請求十張還是上百張,服務(wù)器都是快速返回圖片數(shù)據(jù),絕不至于要一二十秒;

?

  • 懷疑圖片加載引擎出問題

先后用了五種圖片加載引擎都會出現(xiàn)這種問題(用到的加載引擎有, ImageReq, FinalBitmap, facebook的fresco引擎,xutils, Picasso?,共五種,其中fresco 和xutils 在機(jī)頂盒上加載效果更好一些)。如果是加載引擎的問題,總不能所有引擎都有問題吧。

所以很可能代碼里哪里出錯(cuò)了,或者圖片請求過程哪里出錯(cuò)了。

?

  • 一個(gè)一個(gè)圖片請求排查

經(jīng)過給一個(gè)個(gè)圖片加載請求過程加log并排查,發(fā)現(xiàn)只有當(dāng)最開始請求的圖片鏈接種有“無效鏈接”時(shí)才會有引擎加載慢的問題。

譬如,app開啟時(shí)要同時(shí)請求十幾張圖片,而最開始的幾張圖片連接時(shí)無效的或者客戶端永遠(yuǎn)請求不到的,這時(shí)候引擎圖片請求就卡在這里,直到這幾張圖片請求出現(xiàn)網(wǎng)絡(luò)報(bào)錯(cuò)或者“timeout”后才繼續(xù)執(zhí)行后面的“鏈接正常”的圖片請求。這幾張無效的圖片請求導(dǎo)致后面十幾張或幾十張圖片請求滯后。

?

當(dāng)然若是最后幾張圖片出現(xiàn)“無效鏈接”則不會導(dǎo)致所有圖片加載慢,此時(shí)最多是最后幾張圖片加載不出來。

只有最開始幾張圖片無效時(shí)才會出現(xiàn)這個(gè)問題。問題終于找到了。

?

  • 解決方法

這種無效鏈接而加載慢的問題,是客戶端的原因嗎?有一部分,圖片請求時(shí)timeout時(shí)間太長了,所以最好自己能控制timeout時(shí)間,而不是全都交給引擎解決。1s內(nèi)秒獲取不到,就通知timeout。當(dāng)然還有服務(wù)端的原因:因?yàn)榭蛻舳藷o法識別你這個(gè)鏈接是有效還是無效,譬如多加個(gè)字母,少加個(gè)數(shù)字客戶端都無從知曉。所以最好也在服務(wù)端排查,為什么會傳給客戶端錯(cuò)誤的鏈接?!

所以最終這個(gè)問題的解決是服務(wù)端人員完成的: 在返回給客戶端發(fā)圖片鏈接的時(shí)候嚴(yán)格檢查,域名、路徑、圖片名字嚴(yán)格對應(yīng),保證所有圖片鏈接是有效的,能成功請求到的。

同時(shí)客戶端要完善圖片請求過程,請求1秒得不到響應(yīng)就拋出timeout異常,不至于一直占用資源等待而影響其他圖片的獲取。

?

關(guān)于網(wǎng)絡(luò)請求圖片緩慢的問題真的很令人頭疼, 這僅僅是所有問題中的一個(gè)小插曲。記錄該過程,以供參考。

?

總結(jié)

以上是生活随笔為你收集整理的网络图片加载缓慢问题解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。