zoukankan      html  css  js  c++  java
  • 长轮询 & 短轮询

    长轮询:客户端向服务器发送ajax请求,服务器接收到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
    优点:在无消息的情况下不会频繁请求,消耗资源小。
    缺点:服务器hold住连接会消耗资源,返回的数据顺序无保证,难以管理维护。
    function ajax(){
      var xhr = new XMLHttpRequest()
      xhr.open('GET','/zjy')
      xhr.onreadystatechange = () => {
        ajax()
      }
      xhr.send()
    }
    短轮询:就是普通的轮询,指定在特定的时间间隔(1s),由浏览器对服务器发出ajax请求,然后由服务器返回最新的数据给客户端浏览器。
    优点:前后端逻辑代码简单易处理。
    缺点:请求中大部分是无用的,难以维护,浪费服务器端资源,响应的结果没有顺序(因为是异步请求,当发送请求没有返回结果时,后面的请求又继续被发送)。
    function ajax(time= 1000){
      let xhr = new XMLHttpRequest()
      setInterval(() => {
        xhr.open('GET','/zjy')
        xhr.onreadystatechange = () => {
          console.log('back new info')
        }
        xhr.send()
      },time)
    }
    

      

  • 相关阅读:
    七、正规式到正规文法与自动机
    正规文法与正规式
    Class文件加载详解
    ReentrantLock和Synchronized的区别
    synchronized的原理及锁升级
    (四)项目接入springcloud alibaba
    (三)项目搭建
    使用npm install安装前端项目依赖时报错
    java并发编程(二)
    (二)搭建虚拟机环境
  • 原文地址:https://www.cnblogs.com/zhenjianyu/p/12965686.html
Copyright © 2011-2022 走看看