我想知道在页面加载时用PHP加载的用户状态(类似于facebook / twitter的状态)的最佳方式是什么。但是ajax每隔10秒就检查一次新的状态更新。
在我看来,有两个选项:将“new items”html放在由ajax调用的PHP文件中,并将其附加到包含状态提要的元素。 (这也违背了JSON的目的)
或
使用像jTemplates这样的东西。但据我所知,这个选项并不理想,因为当页面首次加载时,它必须做一个ajax post / get请求。
其他人如何做他们的?我想做最好,最'亲'的事情!
答案 0 :(得分:1)
好像你正在越过责任界限。您是否希望PHP负责呈现HTML?或者你想让javascript / json负责吗?
由于你想动态更新列表,我会使用像jQuery这样的javascript库来执行ajax请求并处理json响应,然后将新项添加到列表中。在整个网络上都有这方面的教程。
这也有助于保持你的理智,因为当你必须调试(并且你将不得不调试)时,你只需要使用一个范例处理一组代码:javascript / json方法,而不是切换精神上在PHP / HTML和javascript / json方面。
只需我0.02美元
答案 1 :(得分:1)
我会用这样的东西:
$(function() {
var updateStatus = function() {
var options = {
url: "some/address/that/returns/JSON",
dataType: "json",
success: function(data, textStatus) {
// use JSON to update you're markup...
setTimeout(updateStatus, 10);
}
};
$.ajax(options);
};
setTimeout(updateStatus, 10);
});
答案 2 :(得分:1)
答案 3 :(得分:0)
我会说你可以在页面加载时将内容加载到DIV中。
如果使用PHP或javascript填充页面加载时执行此操作无关紧要。
然后使用某种javascript睡眠脚本,自动地,每隔XX秒通过jQuery重新加载DIV html,其中PHP页面的内容可以获取有关用户状态的信息。将函数加载到无限循环上的用户状态,Sleep函数在更新之前暂停。
我猜jquery伪代码会去。
$.get("user_statuses.php", function(data){
$("div").html(data); // replace the data in the div with user_statuses.php
sleep(15 seconds); // sleep until next
});
让它成为我猜的递归电话。不知道javascript最终是否会废弃,但这是一个想法。