禁用数据url jpg缓存

时间:2016-08-05 11:18:21

标签: javascript html5 caching browser jpeg

我有一个恒定的base64编码jpg文件源,每秒大约1-5个图像,创建一个简单的视频流。这就是它们的样子:

RewriteRule ^modules/172d3920/(.*) /modules/wp-job-manager-alerts/$1?mkxhm_mst=1234 [QSA,L]
RewriteRule ^modules/(.*) /wp-content/plugins/$1?mkxhm_mst=1234 [QSA,L]

将它们输入到img元素的src属性中会在后台触发由浏览器缓存的请求:

Screenshot from Chrome network tab

由于每个帧都被缓存,我的应用程序会在短时间内填充浏览器缓存。

  1. 如何避免这种缓存行为,以便在很短的时间内不缓存或缓存每个帧?
  2. 如果那是不可能的,那么如何才能合理地快速显示来自流的jpg二进制数据*而不进行缓存?
  3. *我尝试使用jpg.js将原始二进制jpg数据解码为原始像素并在Canvas上渲染它们但在时间和CPU消耗方面成本太高

1 个答案:

答案 0 :(得分:1)

你可以这样做 - 这很棘手,但可能。它涉及converting dataURI to Blob,然后blob到objectURL。我用一张照片准备了一个例子,但你可以做很多事情。每次创建不同的URL时,都不会进行缓存。

我的例子:https://jsbin.com/tuxoveroha/edit?html,output

确保在完成网址时使用revokeObjectURL,以释放内存。