首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON - PHP与Javascript?

问JSON - PHP与Javascript?
EN

Stack Overflow用户
提问于 2013-06-08 03:04:50
回答 2查看 1.7K关注 0票数 5

我目前正在开发一个使用PHP函数来获取JSON数据并将其显示在页面上的站点。然而,当加载页面时,它会冻结,直到它成功获得响应,这看起来很奇怪,因为它还没有加载结束的html标记。

我可以使用Javascript进行ajax调用,这将在页面加载后异步发生,但由于页面是静态的,所以我使用PHP缓存它们,这样响应就不会被缓存。

有没有办法让PHP JSON调用在PHP页面加载后发生,或者我可以缓存javascript JSON响应吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-08 03:18:26

你所采用的方法被称为“自举”。通常情况下,在可能的情况下解耦组件是一种好的做法,但是,在您的情况下,如果您正在引导大量数据到页面,可能更好的做法是让它保持原样,并缓存生成的html (Cloudflare是我最喜欢的工具)。

对大量数据运行异步javascript请求可能会导致不期望的前端加载时间-特别是如果您有像jQuery这样的必备库要先加载的话。

引导的JSON越大,越适合使用PHP。

票数 1
EN

Stack Overflow用户

发布于 2013-06-08 03:11:50

我将从内联执行中删除JSON fetch,并使用JavaScript进行AJAX调用。在此基础上,您可以通过站点上的独立PHP脚本运行JSON,并添加一些额外的缓存,如apc,以加快PHP调用速度。

在apc缓存中,您需要安装mod_apc。查找apc_fetch和apc_store函数调用,您可以使用它们来缓存JSON,而不必频繁进行代价高昂的调用。

如果你正在做一个所有的API参数都在url中的GET请求,你可以这样做来加速重复的AJAX请求。

代码语言:javascript
复制
$url = "http://songkick.com/api/url/to/whatever";
$apcKey = "url:$url";

$data = apc_fetch($apcKey);
if(!$data) {
  $data = file_get_contents($url); //or curl, or whatever you're using.
  apc_store($apcKey, $data); //save for next time.      
}

echo $data;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16991224

复制
相关文章

相似问题

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