我正在创建一个小博客。它从数据库中获取信息。我想向用户显示其他人刚刚输入新评论的用户。我创建了3个页面:old_count,new_count,posts。我打算为new_count和old_count创建一个会话,并在帖子中减去它们。结果将以div显示给用户。这个想法我已经废弃了,因为old_count和new_count都有相同的信息,所以帖子中的结果一直是0.我正在寻找的东西就像Twitter,如果有一个新的条目,div出现显示 - 1个新职位 - 。我一直在寻找一种方法来做到这一点。有人可以帮帮我吗。 (注意 - 请完整解释脚本....在此先感谢!!!!)
答案 0 :(得分:0)
设置上次检查内容的时间戳。
然后,使用javascript,轮询服务器(SELECT * FROM发布WHERE created_timestamp> {$ last_checked_timestamp}
如果结果> 0然后显示计数。
更新时间戳。
答案 1 :(得分:0)
问题是:评论什么时候发表评论?如果在最近的点击和当前点击之间创建了?或者,如果用户还没有看到它?
最简单的方法是在会话中存储“已知”评论(例如ID),并检查当前可用的评论。
答案 2 :(得分:0)
您必须存储登录时间戳用户。也许在DB或会话中。根据评论时间戳检查它。 您必须显示已插入数据库的所有注释的通知,并遵守以下条件
PHP:
<?php
/*
DB CONNECT AND SQL TO SELECT COMMENTS FROM THE TABLE. YOU CAN OPTIMIZE QUERY TO REDUCE THE NUMBER OF
TUPLES
*/
$current_ts = strtotime(date('m/d/Y h:i:s a');
$notified = array();
foreach($all_comments as $comment) {
if(strtotime($comment['ts']) < strtotime($_SESSION['user_login_ts'])) {
if(($current_ts - strtotime($comment['ts']) <= REFRESH_INTERVAL) {
$notified[] = $comment;
}
}
}
echo json_encode($notified);
?>
JS AJAX
setInterval(function(){
$.ajax({
url: "server",
success: function(data) {
/* Data is the JSON Object for new comments for that user */
},
dataType: "json"
});
}, <?=REFRESH_INTERVAL?>);
答案 3 :(得分:0)
根据大卫发布的建议,我提出了以下我刚才提出的问题的解决方案。
包含此信息的DIV每10秒刷新一次,是一个指向时间戳重置页面的可点击链接。此页面的代码如下:
<?php
session_start();
$reset = $_POST['reset'];
if($reset == 'reset')
{
$_SESSION['time_stamp'] = time();
echo "done";//confirmation purpose
}
?>
和我控制整个节目的javascript:
<script type="text/javascript">
<!--
$(document).ready(function(){
$('#divname').click(function(){
var r="reset";
$.ajax({
type: "POST",
url: "reset_time.php",
data: r,
success: function(html){
if(html == 'done')
{
$('#divwithinfo').reload(/*my blog page url*/);
}
});
});
});
-->
</script>