2个回答
展开全部
你要判断是否是新消息,也就是是否已读,这个可以在数据表里加字段判断,比如is_read,1表示已读,0表示未读
获取数据。这个因为不是只有一个页面用到,所以写在js文件里,用到的页面都去导入。
setInterval("check_news()",1000); //每隔一秒执行
function check_news(){
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if(xmlhttp.responseText>0){
alert("有新消息");
}else{
alert(xmlhttp.responseText);
}
}
}
xmlhttp.open("GET","test.php?t=" + Math.random(),true);
xmlhttp.send();
}
在test.php里,就是从数据库获取未读消息的条数,然后返回给前台页面。
比如
$sql = "select count(*) from news where is_read=0";
$query = mysql_query($sql);
$row = mysql_fetch_row($query);
die($row[0]); //这里把$row[0]的值返回了,也就是上面的xmlhttp.responseText.
追问
请问下怎么才能让已读完的值由0变为1呢
追答
你点进那条消息的时候就当作你阅读了这条消息,就把他设置为已读,这个能处理的吧。如果是在新页面打开消息就很简单,在跳过去的时候在php里更新数据库就好了,如果不是在新页面打开,那就又要用到ajax了
七鑫易维信息技术
2024-09-02 广告
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
2014-02-10
展开全部
你可以设置一个函数,每隔多少时间向服务器发送一次请求,服务器有相应的页面来处理是否有新消息,在把这个值返回给请求的客户端。具体实现代码,我也不会,只能说思路。
追问
思路是对的,代码我也不会写
追答
假设有A,B两个表,A表是贴子的情况和用户无关。B表是每个用户的贴子情况。
用户登录,获取数据库中的B表中发贴记录和留言记录,并保存在本地变量中。
用户发新贴,服务器在A表,B表中分别记录贴子ID,和初始留言变量为0.
用户每发表一次留言,服务器A表中相应ID贴子的记录留言变量+1。
每隔多少秒请求服务器,去检查A表中留言变量是否和本地变量相同,不同更新B表并提示有新消息,相同则B表不变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询