websocket和ajax的区别

1. 本质不同
ajax,即异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术;
webSocket是HTML5一种新的协议,实现了浏览器与服务器全双工通信。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,服务端与客户端通过此TCP连接进行实时通信。


2. 生命周期不同
websocket建立的是长连接,在一个会话中一直保持连接;而ajax是短连接,数据发送和接收完成后就会断开连接。


3. 适用范围不同
websocket一般用于前后端实时数据交互;而ajax前后端非实时数据交互。


4. 发起人不同
ajax技术需要客户端发起请求(自己请求回来的数据用户自己看);而websocket服务器和客户端可以相互推送信息(用户A请求返回来的东西A用户可以看B用户也可以看;如果是属于公共的那大家都可以看)。


5. 用法不同
ajax:

$.ajax({
       type:"post",
       url:"http://localhost:8080/target",
       data:"state = yes",
       dataType:"json",
       success:funciont(data){
         ...
       }
});

websocket:

var monitor = new WebSocket("ws://"+ip+path)
onOpen()、onMessage()、onClose()
                        </hr></hr></hr></hr>
原文链接:segmentfault.com

上一篇:JavaScript中的this原理及6种常见使用场景
下一篇:从零使用TypeScript开发项目打包发布到npm

相关推荐

  • (ajax)query中全局事件ajaxStart ajaxStop

    Jquery中当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时, 将调用ajaxStart()方法。 同样,ajaxStop()方法则是在所有Ajax请求都完成时调用。

    2 年前
  • 非ajax jQuery POST请求

    amit提出了一个问题:non-AJAX jquery POST request,或许与您遇到的问题类似。 回答者Doug Neiner给出了该问题的处理方式: I know what you are...

    3 年前
  • 防止重复发送 Ajax 请求

    要考虑并理解 success, complete, error, timeout 这些事件的区别,并注册正确的事件,一旦失误,功能将不再可用; 不可避免地比普通流程要要多注册一个 complete 事...

    4 年前
  • 防止浏览器缓存ajax调用结果

    Mark BellSalamander2007提出了一个问题:Prevent browser caching of jQuery AJAX call result,或许与您遇到的问题类似。

    3 年前
  • 通过koa2和Promise.race()构造一个超时取消的ajax。

    MDN上说: 你可以使用AbortController.AbortController()构造函数创建一个新的AbortController对象。 使用AbortSignal 对象完成与DOM请求的...

    2 年前
  • 通过jsonp获取json数据实现AJAX跨域请求

    AJAX(异步的 JavaScript 和 XML)是用于创建快速动态网页的一种技术,它在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页,ajax 使用XMLHttpRequest对象在后...

    4 年前
  • 返回“jQuery Ajax请求parsererror”

    David Eastdkarzon提出了一个问题:jQuery returning “parsererror” for ajax request,或许与您遇到的问题类似。

    3 年前
  • 跨域解决方案-jsonp/CORS/postMessage/hash/WebSocket/proxy

    什么是跨域 浏览器会有同源策略,域名,协议,端口只要有一个不同就是跨域. 同源策略只限制浏览器端,跨域请求是可以发去的,但是请求响应response被浏览器堵塞了,是限制了不同源的读,但不限制不同源的...

    1 年前
  • 跨域POST请求不发送cookie Ajax jQuery

    abatishchevKirill Reva提出了一个问题:Cross domain POST request is not sending cookie Ajax Jquery,或许与您遇到的问题类...

    2 年前
  • 跨域Ajax方法

    经典Ajax示例: var request = new XMLHttpRequest(); request.open("POST", "index.php"); var data = "paramet...

    2 年前

官方社区

扫码加入 JavaScript 社区