我已經創建了一個node-webkit應用程序,它可以將數千張圖像(確切地說是7,480)從磁盤載入HTML表格。大約3500張圖像後,加載停止。在控制檯中,我看到ERR_INSUFFICIENT_RESOURCES
。根據任務管理器,我的應用程序的內存(私人工作集)在這種情況發生時約爲1.37 GB。我怎樣才能防止這種情況發生?有沒有辦法讓我增加這個限制?我應該提供什麼額外的細節來獲得幫助?Node-Webkit應用程序:從磁盤載入成千上萬的圖像
回答
在過去,當我遇到類似的問題時,我將圖像放在內存中,並在滾動查看時將它們插入到dom中。
我創建了兩個隊列,一個用於圖像而不是向下滾動,另一個用於滾動過去的圖像。這樣,只有可見的圖像出現在頁面中。
如果下載時間是一個問題,請嘗試將它們加載到內存中,看看會發生什麼,您遇到的限制有可能是將圖像放在dom中,而不一定將圖像加載到內存中,值得一試。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image
var myImage = new Image(100, 200);
myImage.src = 'picture.jpg';
你能告訴我更多關於你如何插入視圖的信息嗎?這正是我正在尋找的。另外,我用這種方法將圖像加載到內存中:'函數預載(){ \t \t \t \t爲(I = 0;我
關於我在DOM中放置圖像時遇到的限制是正確的。我結束了使用這個懶加載插件:http://appelsiini.net/projects/lazyload/ –
真棒,他們在頁面中的機制基本上是一個前面的數組,和一個數組後,然後計算滾動每個元素的位置,並在頁面移出視圖時將其從頁面中移除,並將新頁面放在頁面中,因爲您將要將它們滾動到視圖中 –
- 1. 在iPhone應用程序中從磁盤加載圖像很慢
- 2. 從磁盤加載程序
- 3. XRender從磁盤/應用程序生成的圖像顯示圖片
- 4. Wordpress插入成千上萬的記錄
- 5. 快速從磁盤加載UITableViewCell圖像
- 6. NodeWebkit - 部署應用程序
- 7. 爲成千上萬的圖像添加動態水印?
- 8. iPhone磁盤映像加載(照片應用程序等)
- 9. 雖然添加了成千上萬行,但應用程序無響應
- 10. TWebbroser凍結應用程序UI - 從磁盤加載HTML文件
- 11. 從內存中嵌入HTML在c + +磁盤上的圖像
- 12. 搜索成千上萬的XML文件
- 13. NHibernate保存成千上萬的項目
- 14. 成千上萬的外來gunicorn工人
- 15. iPhone:如何在應用程序目錄中將圖像寫入磁盤
- 16. Nodewebkit應用程序的桌面通知
- 17. 使用磁盤上的畢加索加載圖像
- 18. 使用Xamarin從磁盤加載大圖像的一部分
- 19. 成千上萬的Java線程產生的線程...爲什麼?
- 20. R,重命名成千上萬的下載文件
- 21. 下載的文件在iOS應用程序的磁盤空間
- 22. 閱讀成千上萬的文件並寫入數百萬的Java文件
- 23. 將成千上萬的收件人導入Outlook中的Outlook MSG
- 24. 將成千上萬的實體插入BigTable
- 25. Java應用程序無法在Windows 7上的磁盤上寫入,爲什麼?
- 26. iPhone上的應用程序有多少磁盤空間可用?
- 27. 成千上萬的圖片返回403禁止
- 28. 谷歌地圖api v2 - 成千上萬的標記
- 29. Google地圖 - 成千上萬的標記 - JSON
- 30. 設置從磁盤加載的背景圖像
真正這裏的問題是,爲什麼你需要一次加載所有的人?只有在你的用戶界面中加載任何用戶可以在任何時候合理接受的內容。 – OliverJ90
圖像顯示正在經歷機械過程的表面上的不同點。用戶需要能夠看到他們全部以識別某些缺陷。有沒有辦法讓我在視圖中加載圖像,並在它們不存在時「卸載」它們? –
好的。是的,有一種方法,但你如何實現這一點取決於你如何將所有這些放在一起。實際上,當用戶在「視口」周圍移動時,您想要對圖像進行某種類型的JIT加載,並將其移除並添加。它比一次加載更高效。 – OliverJ90