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