我有一个网页,它可以动态更改图片来源,并使用PHP和JQuery组合显示新图像。
这是PHP5脚本:
<?php
header("Content-Type: image/jpeg");
$page = $_SERVER['PHP_SELF'];
$sec = "1";
include_once "cookie_checker.php";
function get_file_extension($filename) {
return substr(strrchr($filename, '.'), 1);
}
$path = "./motion";
$latest_ctime = 0;
$latest_filename = '';
$exts = array('jpg');
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
$extension = strtolower(get_file_extension($entry));
if (is_file($filepath) && filectime($filepath) > $latest_ctime && $extension && in_array($extension,$exts)) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
echo '<img src="/motion/' . $latest_filename . '" />';
?>
这是代码的Javascript部分:
var auto_refresh = setInterval(function (){
$('#load_div').load('camera_stream_worker.php');}
, 1000);
显示图像的HTML:
<div id="load_div">
</div>
这个脚本可以在Firefox中使用,但不能在Internet explorer中使用。
你能告诉我如何在Internet Explorer中显示图片吗???
我不明白为什么它不起作用。根据定义,PHP是服务器端的编程语言,InternetExplorer是客户端的工作语言。
我想知道为什么这在Firefox中有效,但在Internet explorer中无效。
感谢
首先,在返回html内容时更改php内容类型。它将工作
我怀疑这是浏览器缓存的问题。为了避免图像被缓存,您可以通过ajax调用发送一些"随机"参数,比如时间戳:
var auto_refresh = setInterval(function (){
$('#load_tweets').load('camera_stream_worker.php?time=' + Date.now());}
, 1000);