V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
johnsneakers
V2EX  ›  问与答

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

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

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

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

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

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


    让我想起很多老板的话:
    应该很简单吧!稍微改一下,这对你来说很简单的吧…
    lucky2touch
        11
    lucky2touch  
       2015-06-12 08:44:19 +08:00 via iPhone
    看题目我以为是后台压力的问题呢......看来前台的问题大点
    lwbjing
        12
    lwbjing  
       2015-06-12 08:57:31 +08:00
    上吧少年。。能出啥丑。。。
    lucky2touch
        13
    lucky2touch  
       2015-06-12 09:51:02 +08:00
    @loading 技术讨论归讨论,但是实施起来还是不妥,如果楼主在一个公司的话,试想楼主真的解决了问题,原来的前端不是被打脸。然后以后各种问题都会找楼主,而楼主的收入一般不是翻番,所以我建议楼主还是自己捣鼓下技术,公司的问题走一步算一步......
    seasolzombie
        14
    seasolzombie  
       2017-12-19 16:27:34 +08:00
    我在网上看过一篇做过连接测试的文章,结果是 ajax 非常耗时,性能估计也是比较差的,这也就是为何 jsonp 在很多大公司得到十分广泛的应用的原因,大家可以去看看淘宝的是加入购物车都是 jsonp 的。ajax 是一个好技术,它的最佳应用应该是低频率的无刷新更新,但是这些场景的请求频率非常低的,所以如果你的应用需要极强的即时性,websocket 是首选。我们做技术,一定要有一个宗旨,适合的场景应用适合的技术!一个页面 5、6 个 ajax 就为了所谓的前后端分离实践真的是违背了 ajax 的本意。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.