jQuery AJAX获取PHP脚本,在加载时显示内容

时间:2011-07-13 04:08:42

标签: php jquery ajax facebook

我不得不与这个项目的Facebook API进行交互,我发现实际上比我预期的要慢一些。因此,我不得不做一些我认为非常不正统的事情:我需要在Facebook的PHP脚本中加载Facebook提供的内容。传统上,我已经在脚本成功的情况下将内容加载到div标签中;但是,我需要加载显示的内容。让客户等待近一分钟让Facebook在显示任何内容之前加载相册和所有相应的评论是绝对不可接受的。希望我不要模糊;我不是要求代码,但我已经尝试了我能想到的一切。这是一个我想念的简单概念吗?...我觉得这比我做的更容易。

我正在使用jQuery AJAX,因为我发现这是最容易使用的。任何评论和/或帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

你的问题的根源是jQuery的AJAX方法挂钩到onreadystatechange事件和readyState变量。文件完全传输后,readyState仅设置为4,因此您的事件只会在下载完成后触发。

在不同的浏览器系列中,访问正在发送的数据一致。这样做会非常复杂和耗时。我建议首先这样做有点不同,可能是通过预先在您自己的服务器上预加载相关的Facebook数据。这可以编译为静态页面,然后可以非常快速地为您的用户提供。

要更快地向用户提供数据,您还需要在框外工作。这里讨论了一个jQuery插件(Does PHP flush work with jQuerys ajax?),它使jQuery ajax方法与流输出兼容。祝你好运。

答案 1 :(得分:0)

这个问题似乎源于您一次获得过多数据的事实。我想你正在谈论从ajax接收内容,因为它是立即打印出来的,但是这个内容有可能立即构建和发送,在整个解析完成之前你将无法访问数据。如果这是不真实的,请查看COMET。如果确实如此,解决方案是限制您一次检索多少数据以减少解析时间。例如,在每个请求中检索5张照片。在检索下一个5时,将这5张照片添加到DOM。

答案 2 :(得分:0)

不要在回调中放入你想要的任何代码,只需将它放在回调

之后

例如

$("#div").load("facebook...", function() {
   //do stuff
});
//put the stuff you want to load at the same time, here