ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DWR技术实现消息已读后更新所有打开页面消息数功能

2020-02-28 19:09:17  阅读:343  来源: 互联网

标签:DWR 读后 num DwrPush 消息 news setNewsnum 页面


    最近开发的项目是每次点击链接都会打开一个新窗口打开页面,当在某一个页面进入消息中心处理消息后,所有打开页面的消息数更新成了让我头疼的问题,考虑过定时刷新页面,但是在打开页面较多、使用人数较多时,请求服务器次数过多影响正常功能使用。后来同事给我推荐了DWR服务器反推技术,让我眼前一亮。下面讲开发过程。

  1. dwr测试的例子是用的Clannad_汐的例子,我将jar包及文件导入我的项目后,测试通过。
  2. 接下来在我的功能-消息更新时调用  DwrPush.push(num);方法,但是调用一直不成功,无法更新消息数,我猜想是因为我消息处理页面是在layer打开的页面中,无法更新父页面的回调方法(未证实)。如下是消息页
  3. 然后我就将DwrPush.push(num);放到后面的父页面(统计数所在页面)的setNewsnum方法中,在消息页调用父页面的setNewsnum,成功更新了所有页面的消息数,下面简单贴下自己的代码:
   
 //菜单页面设置消息条数函数
    function setNewsnum(num){
//         $("#news_num").text(num);
        DwrPush.push(num);
    }
    // dwr待办数刷新回调方法
    function DWRcallback(num) {
        if(num=="0"||num==undefined||num==null){
            $("#news_num").hide();
        }else{
            $("#news_num").text(num);
        }
    }
//消息页面更新消息已读,获取未读消息数,并调用上面parent页面的setNewsnum方法

$.ajax({
	 		url:"<%=basePath %>/news/update",
	 		type:"post",
	 		data:{"xnIds":objid},
	 		dataType : "json",
	 		success : function(data){
	 			var result = eval('(' + data + ')');
	 			parent.setNewsnum(result.ALL_NUM);
// 				DwrPush.push(result.ALL_NUM);
	 		}
	 	});

上面代码实现后,在一个页面打开消息列表查看后,其他页面消息数也会刷新,如下

欧阳凌殇NEO 发布了14 篇原创文章 · 获赞 1 · 访问量 1万+ 私信 关注

标签:DWR,读后,num,DwrPush,消息,news,setNewsnum,页面
来源: https://blog.csdn.net/NEOLyon/article/details/104561384

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有