为什么小图片都占用了那么多内存
大家好,本人有一个项目,其中有一个功能是点击某按钮,从服务器端加载50张图片,展示于网页,可实现通过鼠标滚轮调整图片大小。用户操作模式为根据图片上的内容将图片归类,归完一张,则网页上少一张。现遇到如下问题:
1、50张图片,每张都不超过30K,渲染到网页上后,占地面积是1180*820。而加载前跟加载后,IE/FF/chrome的内存均飙升了600M;
问:浏览器展示图片时所耗的内存跟那些因素有关,也就是对于<img src=...>这个元素的渲染,所耗的内存取决于那些因素?跟图片本身的“重量”(也就是多少字节数)有关吗?跟img的width、height关系大吗?
2、当我通过鼠标滚轮调整图片大小时,放大图片,则内存上升;反之则内存下降。图片调整大小我是这么实现的:
img.style.width = xxx; img.style.height = xxx;
问:这个现象可能恰恰能解释第一个问题。可不可以这么理解:浏览器要显示图片,则需在页面上腾出“地方”给图片,这里的“地方”就是内存,而图片占用的地方面积越大,内存也就耗得越多?
3、问:有什么好的方法,可以使图片渲染到网页上时,不会使浏览器消耗内存飙得太高?我项目中其实需要加载的图片远远大于50张,但当时考虑到内存,所以限制为50。等用户处理到一定时候,只剩10张时,系统自动加载40张,于是网页上又有50张,于是浏览器内存一直居高不下,用户反馈很卡。
4、谢谢~