如果它被缓存在浏览器中,您可以强制对图像的每个请求使用不同的 URL,因此始终通过向服务器附加不同的查询字符串来请求服务器,例如等于自 1970 年以来的当前毫秒数。一个简短的自定义指令可能是一个好方法:
app.directive('noCacheSrc', function($window) {
return {
priority: 99,
link: function(scope, element, attrs) {
attrs.$observe('noCacheSrc', function(noCacheSrc) {
noCacheSrc += '?' + (new Date()).getTime();
attrs.$set('src', noCacheSrc);
});
}
}
});
用作
<img no-cache-src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Swallow_flying_drinking.jpg/320px-Swallow_flying_drinking.jpg">
(就像ngSrc
会使用的那样)。你可以在这个 plunker中看到一个演示。
src
请注意,如果已经有查询字符串,则所写的指令可能不起作用。它可能需要测试是否存在 a?
并调整其行为方式(即,如果存在 a ?
,则添加&
+ 秒)。
编辑:仅使用一个指令进行简化。