我已将图像存储在我的数据库中,需要在他的网络浏览器上将这些图像提供给用户。
我的问题是,以下为这些图像提供服务的方法会导致我的webbrowser占用大量内存(600 MB)。我知道这个问题的原因是因为如果我返回null,那么内存使用率几乎保持不变并且很低。
我只是调用这种方法来访问5张图像。全部不超过5 mb。
我正在显示图像,然后在我的视图中调用以下内容(angularjs):
<img ng-src="http://localhost:8080/myapp/show/{{user.id}}"
非常感谢任何提示/建议。
答案 0 :(得分:1)
Web浏览器客户端增加的内存消耗只能由发送到http://localhost:8080/myapp/show/{{user.id}}
的过多请求以及在角度内的客户端中检索。
使用Angular的应用程序往往会在浏览器中消耗内存,但这种方式很多。您可以做的是在Spring MVC应用程序中使用ShallowETagHeaderFilter,这样如果图像文件没有更改,它将不会将文件发送到Angularjs应用程序。如果图像未更改,这将返回304 "Not Modified"
,以便浏览器可以从缓存加载它。
注意:
ShallowETagHeaderFilter仍会消耗处理周期,但会节省带宽和浏览器内存。