我有以下代码:
<?php
$dir_handle = 'assets/splashs/';
foreach(array_diff(scandir($dir_handle), array('.', '..')) as $file) {
echo '<img id="preload_header" src="assets/splashs/' . $file . '" /><br />';
}
?>
我想知道是否可以检查图像是否成功加载,如果是,那么删除图像然后移动到下一个图像?
我的启动文件夹中有超过600张图片,我不希望600张图片只是坐在一边,但我希望它们在我在其他地方打电话时预先加载。
load image => successfully loaded => remove and onto next image
=> unsuccessfully loaded => remove image and stop
感谢您提前提供任何帮助。
答案 0 :(得分:2)
这是预装图像的方式:
<script type="text/javascript">
if (document.images) {
img1 = new Image();
img1.src = "image.jpg";
}
</script>
因此,您不会加载和显示图像(<img src="....">
),而是使用JavaScript将它们加载到浏览器中,这样您就不必“删除图像”,因为它们永远不会显示。
可以将ofc与foreach结合使用:
<script type="text/javascript">
if (document.images) {
<?php
$i = 0;
foreach(array_diff(scandir($dir_handle), array('.', '..')) as $file) {
echo 'img' . $i . ' = new Image();' . PHP_EOL;
echo 'img' . $i . '.src = "' . $file . '";' . PHP_EOL;
$i++;
}
?>
}
</script>