Javascript 强制浏览器缓存某些文件
我在数据库里有很多图像。图像数据存储在一个具有id的二进制列中。我编写了一个PHP脚本,读取该数据并输出正确的内容类型和数据 每当我想在页面上显示图像时,我都会将/image.php?id=1,其中1是数据库中图像的id,位于图像标记的src字段中。这一切都很好 现在,每当我再次访问页面或使用javascript修改某些图像的src时,它似乎会再次从服务器加载该图像。例如,我有一个图像:Javascript 强制浏览器缓存某些文件,javascript,php,image,caching,dynamic-content,Javascript,Php,Image,Caching,Dynamic Content,我在数据库里有很多图像。图像数据存储在一个具有id的二进制列中。我编写了一个PHP脚本,读取该数据并输出正确的内容类型和数据 每当我想在页面上显示图像时,我都会将/image.php?id=1,其中1是数据库中图像的id,位于图像标记的src字段中。这一切都很好 现在,每当我再次访问页面或使用javascript修改某些图像的src时,它似乎会再次从服务器加载该图像。例如,我有一个图像:。当我将鼠标移到这个图像上时,我使用javascript将src动态更改为/image.php?id=5。这会
。当我将鼠标移到这个图像上时,我使用javascript将src动态更改为/image.php?id=5。这会导致从服务器再次加载映像,这需要1到3秒的时间。在文档开头使用像素大小的图像预加载此图像不起作用。我猜这是因为我实际上在查询一个动态PHP脚本
如果图像具有相同的ID,是否有任何方法使浏览器缓存图像?我的数据库中的图像ID几乎不会改变(如果有的话)
任何帮助都将不胜感激。文件名仅因查询参数不同而不同的缓存内容不可靠。例如,一些代理服务器将“style.css?v1”和“style.css?v2”视为同一个文件。这将导致依赖查询参数作为修订号的资产出现意外问题 在文件名中包含修订 您知道的每个资产(主要是css和js)将在将来更改,其名称或路径中将包含修订版:
而不是css/style\u v1.css
(或)css/style.css?v1
而不是css/v1/style.css
css/style.css?v1
/css/style..css
重写为style.css
<link rel="stylesheet" href="css/style.432.css">
style.css
中更改某些内容时,请从HTML文件更改css文件的修订号:
<link rel="stylesheet" href="css/style.433.css">
- -良好且评论良好的.htaccess示例文件
<link rel="stylesheet" href="css/style.433.css">