如何创建可以使用jQuery ajax更新的数据库驱动列表/提要?

时间:2009-12-15 22:23:33

标签: php jquery ajax json feed

我想知道在页面加载时用PHP加载的用户状态(类似于facebook / twitter的状态)的最佳方式是什么。但是ajax每隔10秒就检查一次新的状态更新。

在我看来,有两个选项:将“new items”html放在由ajax调用的PHP文件中,并将其附加到包含状态提要的元素。 (这也违背了JSON的目的)

使用像jTemplates这样的东西。但据我所知,这个选项并不理想,因为当页面首次加载时,它必须做一个ajax post / get请求。

其他人如何做他们的?我想做最好,最'亲'的事情!

4 个答案:

答案 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)

使用APE Ajax Push Engine,它是专门为这项工作编写的。查看此Twitter演示,了解其实际效果。

答案 3 :(得分:0)

我会说你可以在页面加载时将内容加载到DIV中。

如果使用PHP或javascript填充页面加载时执行此操作无关紧要。

然后使用某种javascript睡眠脚本,自动地,每隔XX秒通过jQuery重新加载DIV html,其中PHP页面的内容可以获取有关用户状态的信息。将函数加载到无限循环上的用户状态,Sleep函数在更新之前暂停。

http://www.geekpedia.com/KB55_How-do-I-make-a-JavaScript-function-wait-before-executing-%28sleep-or-delay%29.html

我猜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最终是否会废弃,但这是一个想法。