| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4624 人关注过本帖
标题:反向Ajax扫盲贴(3)PiggyBack
取消只看楼主 加入收藏
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
js中开启dwr推功能
 
在window.onload中使用dwr.engine.setActiveReverseAjax(true);

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-06-02 08:54
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
DWR很少是做全推送的 基本都是有针对性的半推 所以需要自己写一个过滤器
一个过滤器来过滤要推送的scriptsession
给大家一个代码片段
程序代码:
Browser.withAllSessionsFiltered(new ScriptSessionFilter() {
   
    public boolean match(ScriptSession session) {
     Long loginUserId = (Long) session.getAttribute(Constant.LG_USER_ID);
     if(loginUserId!=null && targetIdList.contains(loginUserId))
     {
      targetIdList.remove(loginUserId);//如果找到了,说明将被推送,所以不用再处理,剩下的都是要被处理的
      return true;
     }
     return false;
    }
    }, new Runnable() {
   
     private ScriptBuffer script = new ScriptBuffer();
     public void run()
     {
      script.appendCall("这里写你页面的js函数", 这个参数是传给js函数的);
      Collection<ScriptSession> sessions = Browser.getTargetSessions();
               for (ScriptSession scriptSession : sessions)
               {
                   scriptSession.addScript(script);
               }
     //ScriptSessions.addFunctionCall("ExtTalk.updateMegGroup", data);//之所以不用这个方法,是因为这个

//方法有bug的存在,会对所有不论过不过滤的scriptsession进行推送,相当于全推送,没有起到过滤的作用
    }
   });

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-06-02 08:56
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
这个有一点点麻烦 我自己都没法跟大家详细的说明白 另外DWR还可以和SSH框架结合使用 希望本帖能给大家一点起始 完

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-06-02 08:56
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
差点忘记了重要的
肯定会问 什么是Piggyback Piggyback到底是什么

简单明了的解释让你明白
 Piggyback 就是如果后台有什么内容需要推送到前台(即调用页面的js方法)
是要等到那个页面进行下一次ajax请求的时候
将需要推送的内容附加在该次请求之后,传回到页面 可以完美的替代我以前用的Jquery等的ajax方式

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-06-02 10:47
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
别加精了 我嫌丢人

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-06-18 15:23
快速回复:反向Ajax扫盲贴(3)PiggyBack
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040003 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved