在我的Web应用程序中,我有一个大量的缩略图集合,用户可以选择一个缩略图并在客户端重新裁剪原始图像以创建新的缩略图。
这很好,在我的应用程序中,我只需立即将新创建的图像设置为图像源,而无需从服务器重新加载它,并且接下来,新图像会上传到服务器。这是为了确保非常敏感的感觉。问题是,当用户刷新页面时,他会看到缓存的旧缩略图版本。
我知道我可以使用一些image.jpg?sometimestamp来确保浏览器必须下载缩略图的新版本,但正如我所说,应用程序需要非常响应,即使在小型和慢速互联网连接上也是如此。(这就是为什么应用程序本身存储在用户的计算机上,而不是实时下载。只有上传,下载和json正在传输)
理想的解决方案是能够告诉浏览器:从您的缓存中删除此特定文件:someurl.com/somefolder/image.jpg,以便浏览器在需要时再次获取它。这可能吗?如何操作?
因此,我不是在问如何不缓存文件或如何强制每个调用进行重新验证,而是在问如何将某些特定文件从浏览器缓存中删除。
附注:这可以是仅适用于Webkit的解决方案,因为这是它运行的唯一平台。(实际上是Qt项目中的qtwebkit。)
这很好,在我的应用程序中,我只需立即将新创建的图像设置为图像源,而无需从服务器重新加载它,并且接下来,新图像会上传到服务器。这是为了确保非常敏感的感觉。问题是,当用户刷新页面时,他会看到缓存的旧缩略图版本。
我知道我可以使用一些image.jpg?sometimestamp来确保浏览器必须下载缩略图的新版本,但正如我所说,应用程序需要非常响应,即使在小型和慢速互联网连接上也是如此。(这就是为什么应用程序本身存储在用户的计算机上,而不是实时下载。只有上传,下载和json正在传输)
理想的解决方案是能够告诉浏览器:从您的缓存中删除此特定文件:someurl.com/somefolder/image.jpg,以便浏览器在需要时再次获取它。这可能吗?如何操作?
因此,我不是在问如何不缓存文件或如何强制每个调用进行重新验证,而是在问如何将某些特定文件从浏览器缓存中删除。
附注:这可以是仅适用于Webkit的解决方案,因为这是它运行的唯一平台。(实际上是Qt项目中的qtwebkit。)
URL.revokeObjectURL(imgurl);
仍会将图像保留在缓存中,并且旧版本会在页面重新加载时显示出来。 - Avatar