我自己有一个很小的数组,它从Twitch.tv获取信息,并使用我创建的数组中的变量显示信息。
<?php include 'header.php';
$streamers = array("NomadicTV","TheOneJat","greatbritishbg","Themastergamer94","Gecko194","slayus","skunkodor");
shuffle($streamers);
$random = shuffle($streamers);
$streamerscount = 0;
$streamtotal = count($streamers);
while (list(, $val) = each($streamers)) {
$url = "https://api.twitch.tv/kraken/streams/".$val;
$json = file_get_contents($url);
$json = json_decode($json);
$stream = $json->stream;
$channelAPI = json_decode(file_get_contents('https://api.twitch.tv/kraken/channels/'. $val));
$status = $channelAPI->status;
$name = $channelAPI->display_name;
$gameimg = "http://static-cdn.jtvnw.net/ttv-boxart/".$channelAPI->game . "-272x380.jpg";
$viewers = $streamsAPI->stream->viewers;
$followers = $channelAPI->followers;
$views = $channelAPI->views;
$avatar = $channelAPI->logo;
echo '<a href="cast.php?caster='.$val.'"/><img src="' . $avatar . '" class="streamers"/></a>';
}
?>
我的问题是,当页面加载时,它需要一段时间,因为它遍历while列表。有没有其他方法可以让我的页面加载更快呢?
谢谢
发布于 2015-01-27 19:21:24
您可以将结果缓存到一个文件中,例如:
$cacheFile = 'path/to/cache/folder/' . md5(serialize($shuffle));
$age = time() - filemtime(cacheFile);
$maxAge = 3600; // 1 hour
if(file_exists($cacheFile) && $age < $maxAge) {
echo file_get_contents($cacheFile);
} else {
ob_start();
/* here comes your loop */
$output = ob_get_clean();
file_put_contents($cacheFile, $output);
echo $output;
}
当然,
https://stackoverflow.com/questions/28169077
复制相似问题