最近在做个web项目,客户需要访问服务器上的大量图片
- 每一张图片都需要看,
- 需求是需要根据图片内容人工判定缺陷、异常,所以要及时呈现
- 访问量基本很平均,没有哪一张是访问量高于其他的
- 显示是用js动态创建DIV,将背景图片设置为图片url实现
- 每次查询基本有5~50张左右的图片需要下载
- 图片主要有40kb(760x570)和80kb~120kb(1024x768)两种尺寸
服务器配置
- 图片访问直接由nginx作为静态服务器
- 在nginx中针对jpg配置了不缓存,不过firefox还是有读取缓存的情况,但是chrome基本都是重新请求,不知道是不是设置不同
-
location ~* ^.+\.(jpg)$ { root /IMGG; access_log off; expires -1; add_header Cache-Control no-store; }
- nginx没有配置缓存策略,因为图片访问基本属于平均分布
现在遇到的问题是
- 浏览器因为需要下载太多图片占用的内存一直狂飙。。。不知道如何能控制
- firefox随便查一会内存就是600M+ ~800M+的样子。。。
- chrome稍微少一点,用chrome自带的统计工具chrome://memory-redirect/看的话内存使用比firefox少很多
请教下各位如何能让浏览器在这种需求下占用尽可能少的资源?我所做的禁止缓存是否正确?
引用来自“猪猪”的答案
感觉不应该禁止客户端缓存。应该在客户端按需加载,只加载进入视野范围内的图片。如果确定已进入视野的图片,在移出视野后不再需要,可对内存进行释放。
引用来自“pfdoschina”的答案
感觉不应该禁止客户端缓存。应该在客户端按需加载,只加载进入视野范围内的图片。如果确定已进入视野的图片,在移出视野后不再需要,可对内存进行释放。
引用来自“leo108”的答案
我的理解:缓存和内存过大没关系的吧。
引用来自“hmh”的答案
我的理解:缓存和内存过大没关系的吧。