首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >虽然循环+数组加载速度更快/可选

虽然循环+数组加载速度更快/可选
EN

Stack Overflow用户
提问于 2015-01-27 19:09:16
回答 1查看 44关注 0票数 0

我自己有一个很小的数组,它从Twitch.tv获取信息,并使用我创建的数组中的变量显示信息。

代码语言:javascript
运行
复制
<?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列表。有没有其他方法可以让我的页面加载更快呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-27 19:21:24

您可以将结果缓存到一个文件中,例如:

代码语言:javascript
运行
复制
$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;
}

当然,

  • 需要缓存文件夹中的写权限。
  • 这只是一个很好的解决方案,如果缓存机制(md5,文件I/O,...)它比你的循环快得多,你应该对它进行基准测试。
  • 代码未经测试,但我认为它说明了这个概念。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28169077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档