实时数据,是用 ajax 每秒请求好,还是 websocket 好

2015-06-11 22:04:08 +08:00
 johnsneakers
公司有一个大屏幕,上面需要实时显示注册人数数量和其他交易额度。之前前端做的是ajax 2秒请求一次,不过开个个把小时浏览器就崩溃。。。卤煮这两天又在研究关于PHP的Server框架,自己撸了一个简单的Boardcast,前端和后端websocket连接,后端有一个定时器,每秒拉取数据发现有数据更新再广播给前端。

那么问题来了,大屏幕实时显示这个东西不是我做的,不过我很想把我的放上去试试。由于我读书少,怕我做的东西放上去也挂了(挂了的代价不大,就是出丑,费力不讨好)。 那么,该是叫那个前端改改他自己的代码,还是装逼的自告奋勇?
6016 次点击
所在节点    问与答
14 条回复
refresh
2015-06-11 22:27:49 +08:00
1. 浏览器崩溃和ajax无关,我猜内存没释放
2. 如果可以不考虑浏览器的兼容性,实时数据ws比较好,但如果你服务器是用nginx代理,则需要一些小小的配置
geeglo
2015-06-11 22:37:58 +08:00
别人的东西就多一事不如少一事,自己的东西果断折腾。。

原谅我年少无知,胆小怕事,怕出丑。
void1900
2015-06-11 23:53:49 +08:00
当然是 websocket
zkd8907
2015-06-11 23:55:19 +08:00
资源许可的情况下练练手呗,没啥坏处。
clino
2015-06-11 23:56:41 +08:00
崩溃的是什么浏览器?
lincanbin
2015-06-11 23:57:19 +08:00
怕浏览器挂,最简单的就是加个定时器,半小时后刷新页面。

如果有能力,可以开开发者工具,我猜是递归层级太多,或者是DOM树没清理。

实时更新当然推荐websocket,如果用Ajax的话,可以用长连接,对性能也有明显的提升。
johnsneakers
2015-06-11 23:59:40 +08:00
@clino chrome
clino
2015-06-12 00:01:39 +08:00
@lincanbin 我以前记得注意过单纯刷新页面 chrome 内存也会不断增多
NemoAlex
2015-06-12 00:10:40 +08:00
楼主的公司没有友好的讨论技术问题的氛围,还是别待了
loading
2015-06-12 07:39:23 +08:00
你看到别人做不好,然后你也没做过,就别先bb咯…自己做出来,在自己机器其他几天,没事再讨论别人技术!


让我想起很多老板的话:
应该很简单吧!稍微改一下,这对你来说很简单的吧…
lucky2touch
2015-06-12 08:44:19 +08:00
看题目我以为是后台压力的问题呢......看来前台的问题大点
lwbjing
2015-06-12 08:57:31 +08:00
上吧少年。。能出啥丑。。。
lucky2touch
2015-06-12 09:51:02 +08:00
@loading 技术讨论归讨论,但是实施起来还是不妥,如果楼主在一个公司的话,试想楼主真的解决了问题,原来的前端不是被打脸。然后以后各种问题都会找楼主,而楼主的收入一般不是翻番,所以我建议楼主还是自己捣鼓下技术,公司的问题走一步算一步......
seasolzombie
2017-12-19 16:27:34 +08:00
我在网上看过一篇做过连接测试的文章,结果是 ajax 非常耗时,性能估计也是比较差的,这也就是为何 jsonp 在很多大公司得到十分广泛的应用的原因,大家可以去看看淘宝的是加入购物车都是 jsonp 的。ajax 是一个好技术,它的最佳应用应该是低频率的无刷新更新,但是这些场景的请求频率非常低的,所以如果你的应用需要极强的即时性,websocket 是首选。我们做技术,一定要有一个宗旨,适合的场景应用适合的技术!一个页面 5、6 个 ajax 就为了所谓的前后端分离实践真的是违背了 ajax 的本意。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/197860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX