前端与后台交互

由于最近和大牛聊天,所得一些感悟,写下来,以勉励自己

  • 交互方式
  • http请求(问答模式)
    通过传统的发送请求接收相应,一问一答的模式获得数据,主要负责传递参数,接收数据模版,渲染数据,对数据几乎不操作
  • 轮询(用于获取最新的数据)
  • 对于数据的实时性有要求时,可以采用轮询的方式,隔几秒钟发送一次请求询问后台是否有最新的数据,如果接收到了最新的数据,便更新自己的视图层(推荐)
  • 可以每次都请求后台获取最新的数据,查库(行为),之后在前端判断上次数据和这次接收数据是否一致,不一致便更新视图
  • 每次请求后台获取最新数据,之后直接更新视图(不推荐)
  • 注意
  • 需设置轮询次数(最大轮询值)

当轮询100(假定值)次还未接收到最新的数据时,便可以将此条轮询去除

  • 离开或销毁页面时需清理轮询
  • websocket模式
    通过websocket进行服务器长连接,服务器端负责判断是否有最新数据,当发现最新数据便向前端主动推送
  • 数据实时性
    由于是服务器端推送的消息,几乎是事件发生便将数据推送给了前端
  • 健全
    由于是长连接,对于web端的数据来源需要强验证,利用参数健全(地址+每次发送消息时携带信息),如果携带的secret / key不正确时,服务器端便主动中断连接
  • 断网重练
    由于受到网络或其他因素的影响,socket连接有时会中断,这个时候需要被断端主动发送一次请求用于重新建立连接(onError、onClose)

需要设置重新连接的次数,当超过limit时变将尝试连接取消