【发布时间】:2014-03-18 06:31:15
【问题描述】:
我有一个页面,其中有一些从数据库中获取的文本。 虽然该页面已打开并且其他人更改了数据库中的文本,但我不想让我的页面在数据更改时立即刷新。
我用谷歌搜索了一些关于使用彗星的东西,但我对此一无所知。
有没有更简单的方法来解决我的问题?如果没有,有人知道彗星的简单教程吗?
【问题讨论】:
标签: javascript php comet
我有一个页面,其中有一些从数据库中获取的文本。 虽然该页面已打开并且其他人更改了数据库中的文本,但我不想让我的页面在数据更改时立即刷新。
我用谷歌搜索了一些关于使用彗星的东西,但我对此一无所知。
有没有更简单的方法来解决我的问题?如果没有,有人知道彗星的简单教程吗?
【问题讨论】:
标签: javascript php comet
我想到了两种方法。 “推送消息”类别中的第一个。没有太多经验,所以我将继续选择选项 2:
在与text 相同的表/行中添加最后编辑时间戳。当有人更新文本时,更新时间戳。
当用户加载页面时,还会在 javascript 变量中发送上次编辑时间戳。然后按照以下内容对验证文件进行超轻量级 AJAX 调用:
$query = "SELECT text,last_edit FROM someTable WHERE lastedit>".$_GET['timestampFromJS']." LIMIT 1";
$result = mysqli_query($conn, $query);
if( $result->num_rows===0 ){
echo 0; // something small for JS
}
else{
$fetch = $result->fetch_assoc();
echo $fetch['text'];
}
在您的javascript代码的成功处理程序中,检查该值是否不等于0,如果不等于0,则使用结果更新页面。
可能还有其他解决方案,或者您可能更喜欢 JSON(我知道我愿意:P),但您会得到这个想法的草稿 :)
【讨论】: