我有一个包含一堆图像的网页.有时图像不可用,因此在客户端的浏览器中显示损坏的图像.
如何使用jQuery获取图像集,将其过滤为损坏的图像然后替换src?
- 我认为使用jQuery更容易做到这一点,但结果却更容易使用纯粹的JavaScript解决方案,即Prestaul提供的解决方案.
我正在为我正在设计的论坛引擎添加头像,我正在讨论是否要做一些简单的事情(论坛图片命名为.png)并使用PHP在显示之前检查文件是否存在,或者做一些事情有点复杂(但不多)并使用数据库字段来包含要显示的图像的名称.
我更愿意亲自使用file_exists()方法,因为如果当前的那个(默认)还没有存在,那么我可以轻松地回归到"默认"虚拟形象,并且它很容易实现代码.但是,我担心性能,因为每个用户在论坛阅读页面上每页面显示一次就会运行一次.所以我想知道,PHP中的file_exists()函数会导致在高流量条件下导致显着性能下降的任何重大减速吗?
如果不是,那很好.如果是这样,您对跟踪用户上传图像的替代方案有何看法?谢谢!
PS:我可以看到的代码差异是文件检查版本允许文件进行通话,而数据库表单信任数据库是准确的并且不打算检查.(它只是一个传递给浏览器的URL.)
我做了一些测试来比较和测量两种功能的速度.is_file似乎比file_exists快几倍(我使用10000次迭代).我想知道PHP或OS是否为这些功能使用了一些缓存,或者是否始终访问HDD?我想不,但我想知道......
我用过这段代码:
<?php
$time = microtime();
$time = explode(' ', $time);
$begintime = $time[1] + $time[0];
for($i=0;$i<10000;$i++)
file_exists('/Applications/MAMP/htdocs/index.php');
$time = microtime();
$time = explode(" ", $time);
$endtime = $time[1] + $time[0];
$totaltime = ($endtime - $begintime);
echo 'PHP parsed this in ' .$totaltime. ' seconds.</br>';
$time = microtime();
$time = explode(" ", $time);
$begintime = $time[1] + $time[0];
for($i=0;$i<10000;$i++)
is_file('/Applications/MAMP/htdocs/index.php');
$time = microtime();
$time = explode(" ", $time);
$endtime = $time[1] + $time[0];
$totaltime = ($endtime …Run Code Online (Sandbox Code Playgroud)