`
rq2_79
  • 浏览: 235667 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

请教关于DWR的推技术问题,

阅读更多
我大概看了一下DWR的推的机制,我的理解是:

服务器状态保存在ScriptSession中

客户端页面中的引擎定时发请求到WEB 服务器 ,察看ScriptSession ,如果发现不为空,则将
ScriptSession中保存的JS调用发送到客户端页面,否则 线程等待一定时间,但是ScriptSession 是通过DWR内部上下文对象得到的,也就是说在DWR框架以外无法改变ScriptSession

我的问题是,如果是DWR控制范围外的机制导致服务器数据变化,如:数据库被外部系统改变,

这种改变怎么推到客户端?
分享到:
评论
16 楼 rq2_79 2008-09-14  
czwlucky 写道
每一次调用DWR,都是通过DWRServlet(或者是SpringServlet等),在这里进行session会话的向后(你的业务层)传递.所以如果没有经过DWR的控制器,会话也就得不到保存,用WebContextFactory.get()当然拿到的也就是空的,如果像楼主说的用一个静态变量保存的话,就存在一个问题,会话的不确定性,A通过DWR控制器访问后session被保存起来,B通过DWR外访问该逻辑时,用的会话却不是自己的,这样似乎不妥.不知我说的对不对.请教楼主...



因为我的数据对于每个客户端都是一样的,所以不存在上面所说的问题。最近由于工作关系,没有继续好好研究dwr,个人感觉,数据的时时刷新不存在session的保存问题,应该对于同一个“页面”要显示的数据是一样的。如果不同session显示不同数据不应该用此技术。
15 楼 eeeeeeee 2008-09-05  
这个不叫推吧,应该叫ajax反转吧……
14 楼 czwlucky 2008-08-21  
每一次调用DWR,都是通过DWRServlet(或者是SpringServlet等),在这里进行session会话的向后(你的业务层)传递.所以如果没有经过DWR的控制器,会话也就得不到保存,用WebContextFactory.get()当然拿到的也就是空的,如果像楼主说的用一个静态变量保存的话,就存在一个问题,会话的不确定性,A通过DWR控制器访问后session被保存起来,B通过DWR外访问该逻辑时,用的会话却不是自己的,这样似乎不妥.不知我说的对不对.请教楼主...
13 楼 absolute007 2008-08-07  
楼主看下这个了,应该会对你有所帮助,这个也是我转载的了。
http://absolute007.iteye.com/admin/blogs/225398
12 楼 小天蝎 2008-03-02  
rq2_79 写道
谢谢Foxswily 的帮忙。我在没有该dwr类的情况下,
在调用代码中把webcontext设为静态的,以后调用这个静态的就可以了。谢谢Foxswily 的提醒。
private static WebContext wctx=null;


这个是怎么做的?能不能详细一些?
11 楼 hutboy 2007-10-24  
楼主怎么解决的,可否详细分享一下,谢谢
10 楼 rq2_79 2007-09-30  
谢谢Foxswily 的帮忙。我在没有该dwr类的情况下,
在调用代码中把webcontext设为静态的,以后调用这个静态的就可以了。谢谢Foxswily 的提醒。
private static WebContext wctx=null;
9 楼 Foxswily 2007-09-30  
有点蹩脚的解决方法:需要修改DwrServlet两个地方,公开Ioc Container
    public static Container getContainer()
    {
        return container;
    }
    private static DefaultContainer container;


然后在想要的地方,直接取ScriptSessionManager

        Container container = DwrServlet.getContainer();
        ScriptSessionManager ssm = (ScriptSessionManager) container.getBean(ScriptSessionManager.class.getName());
        Collection<ScriptSession> sessions = ssm.getAllScriptSessions();
        Util utilAll = new Util(sessions);
        ScriptBuffer s = new ScriptBuffer();
        s.appendScript("alert(");
        s.appendData("something funny here!");
        s.appendScript(");");
        utilAll.addScript(s);
        out.println("</body></html>");
8 楼 rq2_79 2007-09-30  
是的啊。我收到的数据是没有request、response的啊。所以没有办法,推给客户端啊。看看还有什么办法吗?
7 楼 Foxswily 2007-09-30  
DWRServet.doPost()
webContextBuilder.set(request, response, getServletConfig(), getServletContext(), container);
这里new了WebContext,WebContext与request、response关系很紧,正在考虑其他办法绕过去
6 楼 rq2_79 2007-09-29  
我通过页面访问,wctx不为null的,只要我后台发一个udp包给服务,在服务器端自己调用,wctx就是null,前面DWRServlet肯定调用过了。
5 楼 Foxswily 2007-09-29  
DWRServlet:
webContextBuilder = StartupUtil.initWebContext(servletConfig, servletContext, container);
应该是这里。
感觉要真正调用过一次DWRServlet之后才真正有效。

DWR本身就没有规定哪里是框架内,只要能WebContextFactory.get(); 对比公开给js的java类,完全没有限定吧,也就是说在任一个类里用WebContext都能正常完成功能才对。
4 楼 rq2_79 2007-09-29  
WebContext wctx = WebContextFactory.get();
我看了源码 
public static WebContext get()
    {
        if(builder == null)
            return null;
        else
            return builder.get();
    }
因为我的数据变化不是通过页面来的,我调用上面方法不知道里面builder 在什么时候注入啊,所以我得到的wctx是null。应该是有框架内外之分的。至少我通过udp得到的数据,不知道通过什么方式通知到每个web客户端。
3 楼 Foxswily 2007-09-29  
建议看看WebContext的取得方式,对于DWR来说基本上没有框架内外之分,拿到这个就剩下数据组织的问题了。需要注意的是,在Servlet初始化的某些阶段无法取得WebContext,怀疑是DWRServlet还没有完成初始化。
2 楼 rq2_79 2007-09-29  
楼上的你用过dwr吗?

如果数据来自页面增加没有问题,比如:我在一个list页面中增加一条数据,通过dwr调用保存新增的信息,调用相应的推的方法。其他页面也能实现推的效果。不过如果我的数据来自业务层而不是通过页面请求上来的,数据虽然变化了,手动调用推方法,页面还是不能实现数据的更新。
1 楼 aone 2007-09-28  
"定时发请求到WEB 服务器",你也这么说了.
这哪儿还叫推呀.

所以你的问题在这个"ScriptSession"上.它能不能及时的得到真实数据,就决定了被"推"来的数据是不是被外部系统改变后的数据.


相关推荐

    重庆市首席信息官(CIO)协会 《软件及信息化工程造价规范V5.0》T/CQCIO 002-2019

    重庆市T/CQCIO 002—2019《软件及信息化工程造价规范V5.0》 本标准规定了软件及信息化工程造价方法及过程,包括工程费、工程建设其他费、预备费等的造价方法及过程。 本标准规定了工程费中设备及商业现货软件、行业现货软件、数据加工处理费等的取值方法。 本标准规定了购买信息化运营服务的造价方法。 本标准主要适用于政府投资软件及信息化工程项目的估算、概预算、结算管理以及购买信息化运营服务项目的服务单价、服务总价的预算管理、绩效评价管理、结算管理。其他投资类型的软件及信息化工程项目造价评估可参考执行。

    本项目用传统cv算法和卷积神经网络实现手势识别.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    会计学综合练习题.zip

    会计学综合练习题.zip

    过滤 - 化工原理实验Python代码

    过滤 - 化工原理实验Python代码

    aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    aiohttp-3.7.3-cp36-cp36m-manylinux2014_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    aiohttp-3.9.4-cp311-cp311-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    着装分割-基于NCNN+YOLOv8-Seg实现行人着装分割算法-附项目源码+流程教程-优质项目实战.zip

    着装分割_基于NCNN+YOLOv8-Seg实现行人着装分割算法_附项目源码+流程教程_优质项目实战

    球面楔形平板等厚干涉matlab代码.rar

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    aiohttp-3.8.0-cp39-cp39-musllinux_1_1_s390x.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    110套html5模板+精品整站源码+16套小程序源码+20套java源码带文档+面试题

    整站源码带后台免费更新(PHP),有安装说明。java20套已经很多了,小程序亲测过,还有我之前整理的面试题

    一个中国象棋程序和一个配套的基于蒙特卡洛算法及神经网络的人工智能(模仿阿尔法狗)源码.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于HTML+CSS+JavaScript 制作的网页俄罗斯方块小游戏.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于Django框架,采用MTV模式,基于用户画像的电影推荐系统的设计与实现.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    aiohttp-3.8.0a7-cp38-cp38-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于SpringBoot和Vue家政服务平台系统(移动端+PC端+server端源码+MySQL脚本+环境部署步骤讲解+运行步骤

    服务宗旨:有任何问题私信我 适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作项目实战积累等等

    毕设项目:STM32直流电机控制系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    毕设项目:基于springboot构建的答疑系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    毕设项目:商品大数据实时推荐系统。前端:Vue + ElementUI,后端 Spring + Spark.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics