Web页面的刷新问题
场 景:在Web应用中,用户的体验是很重要的,因此衍生了Ajax等异步请求技术。
问题描述:那么对于页面刷新的发起者,一般是用户,用户通过点击、拖拽滚动条,进行触发事件,向后台发送请求(Ajax),后台返回数据(json或其他格式),前台解析,展现给用户。
那么,有没有可能是后台做一个定时任务,定时发送给前台,前台解析数据;这里的转换主要是刷新的发起者,由前台转换为后台
问题是:1th.这种由后台发起刷新的方式 可行不可行?
2th.如果要做,应该从哪些方面入手?
我的思路:后台保持一个线程用于发送数据(可能的方式是,通过HttpServlet中的response方法 用writer流写出数据,而后前台解析。
问题是,前台如何能监听后台发送的信息,或者说如何能与后台的线程做到同步?
不知道这种想法 是对 是错,望指正!
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
这个就像osc的动弹嘛。osc用的是setTimeout来做的吧
dwr也可以,都可以看看
好的,谢谢,我会了解相关的东东滴:)
可参考Html5的WebSocket技术
这个可以做,在服务器端和客户端之间保持一个连接,然后服务器端有跟新内容就像客户端写入,没有跟新的内容也不关闭连接。但是这样非常消耗性能,如此的话就只能采用折中的方法,每个连接保持一段时间,过了这段时间关闭,有新的请求过来的时候重新创建一个连接,如此循环
恩,了解,我先实现一个demo..感谢
用blazds向前段的swf文件推送数据,前端的swf文件你设置成不可见就可以了,然后将获取到的数据再传送给js调用,这样就不用考虑长链接或者websocket之类不同浏览器的特性了
swf在这个项目中 不适用了T_T
反向Ajax?即服务器Push。
谢谢,我先了解下反向Ajax,不懂的话 在请教你
回复
我也只是知道有这个东西,具体也没用过,哈哈
可行的,反向ajax就是这么做的,只不过会使服务器的压力增大
你好,用过js定时 用的是setInterval,但这个的前提是 客户端打开了浏览器,并且浏览器能执行js代码,发起者 还是客户端
js定时执行
没错,那可以理解为http虽然是tcp socket,但是短连接,无状态信息是吧,而且js轮询请求 是做在client端的;那么有没有可能,服务器端做无差别的消息发送,client端 做校验,那么无论动态模板还是静态页,都是没有常驻内存的,也就是类似于php那种脚本语言,没有线程、进程;那么长连接的建立 是当客户端发起连接请求开始的;那么对用户状态 如何 监控呢?
http协议本身就是请求-响应, 不可能反向。所谓的服务器push其实核心依然是依靠浏览器主动发起请求,有两种方式,一种是js轮询请求,一种是长连接。
长连接指发送请求后,服务器不是立即响应而是等到有推送数据时在响应,如果中间超时,浏览器还要再发送请求过去。