在页面中有 
setInterval(function(){},5000)
每隔5秒向服务器发送请求获取最新数据,并把(如果有新数据)结果填充到DOM内。
如果仅仅这样做,肯定会给设备增加负担,有什么方案既能把新数据显示出来而又不增加设备的负担呢?

解决方案 »

  1.   

    模拟长连接只能这样了吧要么用socket去,不过还得搭建一个socket服务器,前端用socket.io
      

  2.   

    用服务器推送技术。像WEBQQ那样,可以减少没数据时带来的负担。在我的资源里有一个简单实例要用到多线程。有兴趣可以研究一下
      

  3.   

    server push不是所有浏览器都支持
    长连接也同样会给服务器造成负担我的建议是优化触发点、时间间隔、数据三方面
    1.触发点是否都一定要用时间?未必,看数据要求,按需请求,甚至拆分触发点
    2.间隔是否越长越好?也未必
    3.数据量越少越好?这个倒应该这样。长时间不变的数据不必请求,请求的数据是结果还是初始数据?结果意味着在服务器端计算,原始数据意味着在客户端计算,这个我更多考虑是数据的保密性,如果不需要保护算法且不太复杂,尽可能客户端计算好些多因素分析就是这样,任意因素和结果的关系都可能是单一变化的(一次线性),但多因素结合很可能会有一个极值(最优组合,二次/N次曲线),多做点测试尽可能逼近这个极值会比较好
      

  4.   

    web socket 和  server push 有什么不同?
      

  5.   

    另外websocket如何实现一对多的通信? 
    例如。 A,B,C 三台客户端都浏览着 PAGE-MSG.aspx
    当服务器产生了新数据,如何把信息推送到 A,B,C三台机子上?