仅在完全可用时才每秒刷新一次图像

时间:2016-03-24 18:48:27

标签: javascript php

我遇到了一些问题。我想通过http拍摄实时图像并将其保存在我的网络服务器上。使用javascript我每秒刷新保存的图像。但是当javascript刷新并且图像没有完全保存时,我只能看到半图像(不是完全加载的图像)。

有没有办法解决这个问题?例如。仅在保存任务完成时显示图像?如果没有显示旧的“缓存”图像,直到新的图像可用。

我的php文件从源代码访问图像:

$path = realpath(dirname(__FILE__));
for ($i = 0; $i < 59; ++$i) {
    copy('http://<<<IP>>>/livepicture.jpg', $path.'/livepicture.jpg');
    sleep(1);
}

我的html文件刷新图像:

<script language="javascript" type="text/javascript" >
function ChangeMedia(){
    var d = new Date();
    var t = d.getTime();
    document.getElementById('camara').src = "livepicture.jpg?"+t;
}
var reloadcam = setInterval("ChangeMedia()",1000);
</script>
<img src="livepicture.jpg" alt="Loading..." name="camara" id="camara" />

2 个答案:

答案 0 :(得分:2)

您需要修改以下代码才能复制图像文件,并且只有在下载后才能替换上一个文件。

$path = realpath(dirname(__FILE__));
for ($i = 0; $i < 59; ++$i) {
    copy('http://<<<IP>>>/livepicture.jpg', $path.'/temp.jpg');
    rename($path.'/temp.jpg', $path.'/livepicture.jpg');
    sleep(1);
}

答案 1 :(得分:0)

您可以尝试使用ajax requet和onload事件的图像以及当您的php响应良好时刷新页面