将PHP转换为Ajax

时间:2014-08-25 20:04:55

标签: php jquery ajax api asynchronous

我是编码的新手,在创建以下PHP代码时非常自豪。使用TwitchTV的API,我可以显示有人在TwitchTV上播放的游戏。有用。

$info = "https://api.twitch.tv/kraken/channels/celgaming";   
$json = json_decode(file_get_contents($info), true);
$thegame = $json['game'];
echo $thegame;

但我正在计划缓存此代码所在的页面并意识到它不起作用,因为PHP是服务器端。如何将这段代码转换为Ajax或其他一些可用于页面缓存的异步方法?

2 个答案:

答案 0 :(得分:0)

我不会写你的javascript,你应该先尝试自己,但提出其他可能解决你的主要目标(缓存)的解决方案:

  • 您可以使用数据库(例如MySQL)而不是客户端缓存。只需将TwitchTV查询的结果与数据库中的截止日期一起存储,并在向TwitchTV发送另一个请求之前进行检查。
  • 您可以通过PHP发送HTTP Cache-Control headers或包含在您的HTML代码中。有关说明,请参阅此问题:Cache control and expires header for PHP。他们建议客户端在到期日期之前不要查询服务器。

答案 1 :(得分:0)

我不确定异步呼叫是否是你需要的,但我会先尝试一下。 这不是一个真正的答案,但希望有一些指示:

尝试对“https://api.twitch.tv/kraken/channels/celgaming”进行Ajax调用 并偶然发现了“同域政策”问题。见下面的链接。

[Ajax跨域问题的解决方案] [1]

我从[1]尝试了这个:Ways to circumvent the same-origin policy

$.getJSON("https://api.twitch.tv/kraken/search/games?q=star&type=suggest&callback=?", function (data) {
            $.each(data.games, function (index, item) {
               console.log(index, item);
            });
        });

有效。也许您应该扫描API文档以获取所需数据的替代方法。