我有一个php脚本作为随机图像生成器。脚本在数据库中查询用户的图像,并随机将路径返回到一个。一旦路径被选择,这里是负责返回图像的部分代码。如何通过php脚本加载图像缓存
header('Content-Transfer-Encoding: binary');
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($path));
echo file_get_contents($path);
我从客户端调用它像这样
image.src = "/database/getRandomImage.php";
我每次刷新页面我随机得到一个新的形象。但是,如果我多次调用getRandomImage.php
来排列并排的图像,它们将全部是相同的图像。如果我添加一个随机属性的电话像这样
image.src = "/database/getRandomImage.php?path=" + Math.random() * 100;
图片变得随机。我认为这意味着浏览器基于我传递的随机属性来缓存它们。问题是这个属性与实际图像无关。两张不同的图像可能会被缓存为相同的图像,并且可能无法从缓存中检索相同的图像。 getRandomImage.php
是否有任何方式通知浏览器它正在发回的图片?
请不要慢请求图像名称然后请求图像? – puk
我想在理论上。但这就是网络的工作原理。图像具有特定的URL,可以访问以下载该图像数据。如果从数据库中获取图片url真的是一个突破性能问题的交易,那么你很可能有更大的问题。但是如果你不能使用缓存,因为你没有独特的网址来显示你的图片,那么在他们第一次看到图片后,它可能会慢得多。 –
它不是从缓慢的数据库中获取,而是我担心的http请求(我想现在已经消失了)。从本质上讲任何涉及Ajax是如此之慢,仿佛它需要一秒钟的3/4刚刚一命呜呼我与这个解决方案假设设定的图像,而加载页面的,这个问题已经不存在 – puk