国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

怎樣處理Safari移動端對圖片資源進行限制

來源:懂視網 責編:小采 時間:2020-11-27 20:13:20
文檔

怎樣處理Safari移動端對圖片資源進行限制

怎樣處理Safari移動端對圖片資源進行限制:原文作者:Thijs van der Vossen本文翻譯自《How to work around the Mobile Safari image resource limit》,原文寫于2010年10月25日。可能部分限制已經不再適用。翻譯本文的目的是作為《讀Zepto源碼之assets模塊》的附文,讀Zepto源碼系列
推薦度:
導讀怎樣處理Safari移動端對圖片資源進行限制:原文作者:Thijs van der Vossen本文翻譯自《How to work around the Mobile Safari image resource limit》,原文寫于2010年10月25日。可能部分限制已經不再適用。翻譯本文的目的是作為《讀Zepto源碼之assets模塊》的附文,讀Zepto源碼系列
原文作者:Thijs van der Vossen

本文翻譯自《How to work around the Mobile Safari image resource limit》,原文寫于2010年10月25日。可能部分限制已經不再適用。

翻譯本文的目的是作為《讀Zepto源碼之assets模塊》的附文,讀Zepto源碼系列文章已經放到了github上,歡迎star: reading-zepto

正文開始:

受限于 IpadIphone 的可用內存,Safari 瀏覽器的移動端會比桌面端有著更嚴格的資源使用限制

其中之一是每個 HTML 頁面的圖片數據總量。當移動端的 Safari 瀏覽器加載了 810MB 的圖片數據后,就會停止加載其他圖片,甚至瀏覽器還會崩潰。

大多數網站都不會受到這條限制的影響,因為保持頁面合理的大小通常是一種很聰明的做法。

但是,在下面的場景中,你可能會遇到麻煩,如大型的圖片畫廊和幻燈片,或者是異步加載新數據的 web 應用,例如模擬不同版塊切換時的原生動畫(是的,你可以用移動端 Safari 模擬 Flipboard 的切換效果 )。

我們有充足的理由相信,只通過刪除不再需要的圖片元素,就可以不受這條限制的影響:

var img = document.getElementById('previous');
img.parentNode.removeChild(img);

但是然并卵,因為某些原因,將圖片從 DOM (或者一個包含圖片的元素)中刪除時,圖片的真實數據并沒有釋放。真是頭大啊!

而將圖片的 src 屬性設置為其他的(更小的)圖片鏈接,卻起到了作用。

var img = document.getElementById('previous');
img.src = 'images/empty.gif';

替換掉 src 屬性后,舊的圖片數據最終得到了釋放。

我已經徹底測試過這種方法,下面幾個方面是需要注意的:

  1. src 屬性設置為其他圖片后,圖片數據不會立即釋放,需要一段時間讓垃圾回收器來真正地釋放內存。這意味著,如果你太塊地插入圖片,依舊可能會陷入麻煩中。

  2. 在移動端 Safari 觸發限制后,即便刪除一部分或者全部已經加載的數據,Safari 也不會再加載額外的圖片,這種情況即便在切換到其他頁面時也繼續存在。這意味著在測試這項技術時,你需要經常重啟 Safari(這差點把我逼瘋了)。

  3. 如果你想將圖片元素從 DOM 中刪除,你還必須確保在更改 src 前,元素不能為垃圾回收掉,否則,舊圖片數據不會被釋放。下面這個是最好的解決方案:

var img = document.getElementById('previous');
img.parentNode.removeChild(img);
img.src = 'data:image/gif;base64,' + 
 'R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
window.timeout(function() {img = null;
}, 60000);

你可以看到,我使用了 data URI 作為替換圖片。

(如果你只是刪除圖片元素, iPad 在加載8張圖片后會停止繼續加載,如果用 Zeptoassets 插件,會持續加載。)

在上周我和 Thomas Fuchs 解釋了這項技術后,他立即將它加入了 Zepto 中。這個周末,我貢獻了一個測試函數,你可以自己用它來測試下。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

怎樣處理Safari移動端對圖片資源進行限制

怎樣處理Safari移動端對圖片資源進行限制:原文作者:Thijs van der Vossen本文翻譯自《How to work around the Mobile Safari image resource limit》,原文寫于2010年10月25日。可能部分限制已經不再適用。翻譯本文的目的是作為《讀Zepto源碼之assets模塊》的附文,讀Zepto源碼系列
推薦度:
標簽: 圖片 資源 safari
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久99精品一久久久久久 | 波多野结衣系列在线观看 | 国模冰冰炮交图后02 | 免费在线国产视频 | 最新国产精品精品视频 | 亚洲国产视频网 | 国产欧美综合精品一区二区 | 亚洲a∨精品一区二区三区下载 | 91久娇草 | 欧美成人精品在线 | 国产精品26p | 精品国产欧美一区二区三区成人 | 国产亚洲精品片a77777 | 欧美综合国产精品日韩一 | 91在线一区二区 | 国产午夜高清一区二区不卡 | 欧美高清不卡 | 免费一级淫片 | 中文字幕一区二区三区久久网站 | 欧美日韩精品高清一区二区 | 国产精品麻豆a在线播放 | 亚洲第一页在线视频 | 精品亚洲一区二区 | 日韩成人小视频 | 日韩第一页在线观看 | 亚洲国产一成人久久精品 | 国产精品特级毛片一区二区三区 | 国产精品毛片一区二区三区 | 日本一区二区三区免费观看 | 国产精品久久久久久久久99热 | 久久国产精品一区二区三区 | 色老头久久久久 | 先锋影音制服丝袜 | 国产区二区| 中日韩美中文字幕 | 国产精品久久久久一区二区 | 熟年中出交尾六十路七十路 | 国产日韩欧美视频在线 | 国产特级黄色片 | 日本久热| 一级毛片免费看 |