-2

我对实时数据库有一些疑问。

这意味着当数据库更改该值时,页面将直接显示类似 Live Chat 的内容。

    Language : Jquery + PHP

Example:

    MySQL Database:
    Table : user
    column : username,Status,Date,TodayOnline
    Data : [Kenny, Online,15/03/2013,0],[David, Offline,16/03/2013,1]

Action:

    When David going to online, it will show at page directly by using replace the "Kenny is now Online" with "David is now online"
    and show Today online time mean how many time he is only today.

Screen Show:

    David Is Now Online (Today Online : 1)

希望你们明白我的意思,我不知道如何通过 ajax 来做到这一点,或者谁能告诉我如何让 ajax 每秒运行或任何其他好主意来立即/实时显示它?

提前致谢。

更新

这是我的代码 JS

$.ajax({
        type: "post",
        url: "/checkOnline.php",
        cache: false,
        data:{ date: $("#date").val(),time: $("#time").val()},
        success: function(responds){
            var obj = JSON.parse(responds);
                try{
                    ('#online').text(responds+" Is Now Online");
                }catch(e){      
                    alert('Exception while request..');
                }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
                    alert(XMLHttpRequest.status);
                    alert(XMLHttpRequest.readyState);
                    alert(textStatus);
        }
    });

在这里和我的索引代码,我添加了隐藏输入框以获取当前日期时间。

        <input name="date" id="date" value="<?= date('Y-m-d') ?>" style="display:none"/>
        <input name="time" id="time" value="<?= date('H:i:s') ?>" style="display:none"/>

这是我的 checkOnline.php

<?php
$query = "Select username FROM user WHERE status='online'";
$result = mysql_query($query);

echo json_encode($result)
?>

当有人使用 jquery 加载页面时,我运行 ajax,但我知道这是一个坏主意,但我不知道如何让它生效。

谢谢

4

2 回答 2

0

基本上,为了给人一种持久性和实时更新的错觉,你需要做一些认真的开发。

但是有一些 javascript 领域随着数据更新而真正进入实时视图渲染:谷歌搜索“backbone”和“backbone marionette”和“pubsub javascript”和“comet”

于 2013-03-15T19:39:07.123 回答
0

您需要实施PushComet技术。有关如何实施评论的更多信息,PHP请查看

于 2013-03-15T19:39:41.817 回答