【发布时间】:2013-06-20 15:43:21
【问题描述】:
我正在尝试创建一个 twitch.tv 流列表,该列表每 60 秒提取一次在线/离线状态,并根据该响应返回一个图像。我用来提取此信息并返回图像的 php 代码如下:
<?php
header('content-type: image/png');
$stream = $_GET['stream'];
$json_file = @file_get_contents("http://api.justin.tv/api/stream/list.json?channel={$stream}");
$json_array = json_decode($json_file, true);
if (strtolower($json_array[0]['name']) == strtolower("live_user_{$stream}")) {
echo file_get_contents("online.png");
}else{
echo file_get_contents("offline.png");
}
?>
这部分工作正常。我这样称呼这段代码(image.php):
<img src="image.php?stream=nameofstreamgoeshere" />
这一切都有效,但它不是现场的。我已经尝试了几件事来让它刷新并确定 jQuery 可能是最好的选择。我认为我需要做的是发送标题信息的某种组合,强制浏览器不缓存图像,并可能将其放入 jQuery 每 60 秒刷新一次的 div 中,但这是我遇到砖墙的地方。关于如何做到这一点的任何建议?我对 jQuery 比较陌生,在这里摸索了一下,所以任何帮助都将不胜感激。
我为避免缓存图像而发现的许多潜在解决方案包括在图像 url 上附加日期或时间等内容,但由于这已经是一个动态图像 url,我不知道如何使其工作。
提前感谢您的帮助。
【问题讨论】:
-
您是否从 justin.tv 服务中得到正确的响应?那么,缓存的是你的文件吗?
-
是的!我从 justin.tv 得到了很好的回应——他们允许每 60 秒提取一次状态信息。我相信缓存的是我的 online.png 或 offline.png 文件。
标签: php jquery image dynamic-image-generation