Web页面的刷新问题

发布于 2021-11-24 01:14:48 字数 761 浏览 942 评论 15

场      景:在Web应用中,用户的体验是很重要的,因此衍生了Ajax等异步请求技术。

问题描述:那么对于页面刷新的发起者,一般是用户,用户通过点击、拖拽滚动条,进行触发事件,向后台发送请求(Ajax),后台返回数据(json或其他格式),前台解析,展现给用户。

              那么,有没有可能是后台做一个定时任务,定时发送给前台,前台解析数据;这里的转换主要是刷新的发起者,由前台转换为后台

              问题是:1th.这种由后台发起刷新的方式 可行不可行?

                         2th.如果要做,应该从哪些方面入手?

     我的思路:后台保持一个线程用于发送数据(可能的方式是,通过HttpServlet中的response方法 用writer流写出数据,而后前台解析。

     问题是,前台如何能监听后台发送的信息,或者说如何能与后台的线程做到同步?

      不知道这种想法 是对 是错,望指正!

      谢谢


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(15

把昨日还给我 2021-11-24 06:20:37

这个就像osc的动弹嘛。osc用的是setTimeout来做的吧

dwr也可以,都可以看看

策马西风 2021-11-24 06:20:37

好的,谢谢,我会了解相关的东东滴:)

坚持沉默 2021-11-24 06:20:37

可参考Html5的WebSocket技术

疾风者 2021-11-24 06:20:37

这个可以做,在服务器端和客户端之间保持一个连接,然后服务器端有跟新内容就像客户端写入,没有跟新的内容也不关闭连接。但是这样非常消耗性能,如此的话就只能采用折中的方法,每个连接保持一段时间,过了这段时间关闭,有新的请求过来的时候重新创建一个连接,如此循环

旧伤慢歌 2021-11-24 06:20:37

恩,了解,我先实现一个demo..感谢

断爱 2021-11-24 06:20:37

用blazds向前段的swf文件推送数据,前端的swf文件你设置成不可见就可以了,然后将获取到的数据再传送给js调用,这样就不用考虑长链接或者websocket之类不同浏览器的特性了

三月梨花 2021-11-24 06:20:37

swf在这个项目中 不适用了T_T

一个人的旅程 2021-11-24 06:20:29

反向Ajax?即服务器Push。

奈何桥上唱咆哮 2021-11-24 06:20:28

谢谢,我先了解下反向Ajax,不懂的话 在请教你

白龙吟 2021-11-24 06:19:46

回复
我也只是知道有这个东西,具体也没用过,哈哈

复古式 2021-11-24 06:00:43

可行的,反向ajax就是这么做的,只不过会使服务器的压力增大

执手闯天涯 2021-11-24 05:27:10

你好,用过js定时 用的是setInterval,但这个的前提是 客户端打开了浏览器,并且浏览器能执行js代码,发起者 还是客户端

秉烛思 2021-11-24 05:07:22

js定时执行

牵你的手,一向走下去 2021-11-24 03:38:48

没错,那可以理解为http虽然是tcp socket,但是短连接,无状态信息是吧,而且js轮询请求 是做在client端的;那么有没有可能,服务器端做无差别的消息发送,client端 做校验,那么无论动态模板还是静态页,都是没有常驻内存的,也就是类似于php那种脚本语言,没有线程、进程;那么长连接的建立 是当客户端发起连接请求开始的;那么对用户状态 如何 监控呢?

如此安好 2021-11-24 03:23:01

http协议本身就是请求-响应, 不可能反向。所谓的服务器push其实核心依然是依靠浏览器主动发起请求,有两种方式,一种是js轮询请求,一种是长连接。
长连接指发送请求后,服务器不是立即响应而是等到有推送数据时在响应,如果中间超时,浏览器还要再发送请求过去。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文