Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 客户端如何加载和缓存仅在数据库中可用的图像_Php_Javascript_Database_Image - Fatal编程技术网

Php 客户端如何加载和缓存仅在数据库中可用的图像

Php 客户端如何加载和缓存仅在数据库中可用的图像,php,javascript,database,image,Php,Javascript,Database,Image,我以前从未在我的网站上使用过数据库MySQL,在如何加载图像方面,我遇到了概念上的障碍 我可以使用AJAX查询数据库中的图片路径,然后使用,但我不想同时调用AJAX和 我可以使用像这样的php脚本,但这会导致我所描述的缓存问题 这两种选择似乎都不理想。这似乎是一个非常基本的操作,因为客户端必须先查询数据库,然后才能知道文件的位置。我非常感谢更高级的程序员就如何实现这一点提供的意见。如果我没弄错,您可以这样做: <image src='getImage.php?id={unique_iden

我以前从未在我的网站上使用过数据库MySQL,在如何加载图像方面,我遇到了概念上的障碍

我可以使用AJAX查询数据库中的图片路径,然后使用,但我不想同时调用AJAX和 我可以使用像这样的php脚本,但这会导致我所描述的缓存问题
这两种选择似乎都不理想。这似乎是一个非常基本的操作,因为客户端必须先查询数据库,然后才能知道文件的位置。我非常感谢更高级的程序员就如何实现这一点提供的意见。

如果我没弄错,您可以这样做:

<image src='getImage.php?id={unique_identifier}'>
由于每个图像的id都会更改,因此不会出现缓存问题


如果您没有图像的id,您可以在那里放置任意随机数

事实证明,我遇到的“概念障碍”是我假设我必须在加载页面后加载图像,而不是在加载过程中。多亏了和,最好的解决方案是

<img src="<? echo getRandomImage() ?>">

你是如何使用这些图像的?不确定数据库和图像之间的关系…@JonathonReinhart数据库有一个名为“picture”的表,该表包含ID主键、所有者外键和图像保存路径。我跟踪了您的链接,但未发现缓存问题。相反,我发现了对URL工作原理的误解。所以你想缓存还是不缓存?仅供参考,URL类似于硬盘上的文件路径。单个文件路径只能指向单个文件,与URL相同。@slebetman在链接中,image.src=/database/getrandomage.php(至少在我的计算机上)被缓存为单个文件,即使getrandomage每次都返回不同的图像。是否保存路径?因此,只要让PHP在创建页面时从数据库获取路径,假设包含图像的页面也是PHP。是的,这就是我使用的解决方案。问题是客户端不知道它正在检索什么图像,因此同一图像可能会获得两个唯一标识符。为什么同一图像会获得两个uid?B/c id存储在服务器端,客户机对此一无所知,所以UID必须被随机分配。例如,计数器,或者,正如我愚蠢地认为,服务器必须被查询,文件路径被检索,然后图像被加载。如果可以在此时更改它,您可能希望考虑通过ID下降排序表。抓住最上面的一个,因为它在下降,它从最大的ID开始,然后增加1。这样,您将得到一个降序ID,其中每个ID都比最后一个大,确保它们是唯一的。@Mike完全可以分配唯一的用户x图片ID,这样,如果用户ID已知,则每个用户ID的图片ID可以从1..n开始。我将对此进行考虑,但在以后才会使用此“优化”。