php - 带有多个api调用的慢PHP页面:我的用户将在等待

标签 php facebook performance api youtube

这是我在本网站上发布的第一个问题,因此,如果标题不清楚,您必须原谅我。

我有这种情况:一个php页面需要处理从不同的api调用(facebook,youtube,lastfm)获取的数据。正如预期的那样,该页面将需要数年的时间加载,这很好。
问题是。

可以创建一个仅包含启动过程所需的两个基本数据的页面(facebook id和Token),然后告诉用户等待,然后由服务器端启动该过程,而无需离开此烦人的“加载页面” “开?我真的不知道如何触发这样的事情。

先感谢您。

附言我已经设法通过fql对Facebook api和类似其他技巧的多次查询进行了优化,但是由于一个api的调用结果导致了对另一个api的特定调用,因此我似乎无法获得它Fastwe。
而且,显然,我已经完成了Facebook身份验证过程,以使用户登录到此缓慢的加载页面。

最佳答案

您将需要使用这种类型的范例来获得最佳的用户体验。

AJAX是您的 friend

仅发送您需要的最少信息,以向用户显示页面的轮廓。

<html>
<head>
...scripts, meta, css etc...
</head>
<body>
<h1>Facebook Info</h1>
<div id=facebook-info>
<p>loading...</p>
</div>

<h1>Twitter Info</h1>
<div id=twitter-info>
<p>loading...</p>
</div>

</body>
</html>

然后在每个内容部分(尚未加载)中都有一个微调器。

在加载javascript时(为简化起见,我缩写为...有关其ajax调用的更多信息,请参见http://jQuery.com/),您可以调用特定的php页面,这些页面吐出一些JSON。这是真正的工作发生并花费时间的地方。
<script>
$(document).ready(function(){
   $.ajax('/content/getFacebookInfo.php',displayFacebookContent);
   $.ajax('/content/getTwitterInfo.php',displayTwitterContent);
});
</script>

然后,在displayFacebookContent和displayTwitterContent回调函数中,您可以在此处动态构建DOM的内容。
<script>
var displayTwitterContent = function(response) {
  var html = "<ul>";
  foreach(var i in response.posts) {
     html += "<li>" + response.posts[i].message + "</li>";
  }

  html += "</ul>";
  $('#titter-info).append(html);
};
</script>

再次,这是表示概念的缩写,您必须充实脚本,还必须构建用JSON对象响应的php处理程序。

通过将艰苦的工作转移给AJAX处理程序,可以快速提供主要HTML,使用户感到满意。等到他的视线在页面上移动时,一些AJAX调用将已经完成,并且您已经将可用数据动态插入到DOM中,他们将看到它们。

这有点像Google在您键入内容时进行的搜索,它会在服务器上进行AJAX调用,并在您单击提交之前获取内容供您实时显示。

关于php - 带有多个api调用的慢PHP页面:我的用户将在等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919609/

相关文章:

php - 修改 PHP/mysql 表上的值并更新服务器上的表

php - 在 Laravel 5 上手动登录用户

java - (#200) 需要扩展权限 : publish_actions

performance - Fiddler 让我的浏览器变慢

performance - 最新至强上的 FP 密集型超线程性能

MySQL数据库设计-存储图像-单表或多表

javascript - 货币数据表格式

php - cakephp 3.0 如何使用值而不是 id 填充选择字段

javascript - 无需点击提交即可登录

android - Graph Api 未从 Android 中的 Facebook SDK 获取位置