原生ajax的实现+websocket理解

1.首先实例化一个XHR对象,
var xhr = new XMLHttpRequest();
2.然后发动请求,
xhr.open(‘GET’,’example.php’,false);
open()方法的第一个参数用于指定发送请求的方式,这个字符串,不区分大小写,但通常使用大写字母。”GET”和”POST”是得到广泛支持的.参数还可以是”HEAD”、”OPTIONS”、”PUT”。第二个参数是请求url,只能想同一域中使用相同协议和端口的URL发送请求。第三个参数表示是否异步,默认是true,表示异步发送,false是同步。
3.发送数据
send()方法接受一个参数,即作为请求主题发送的数据。
GET方法,send()方法无参数,或参数为null;如果是POST方法,send()方法的参数是要发送的的数据。
4.接受响应
一个完整的http响应是有状态码,响应头集合,和响应主题组成。在收到响应的消息后,这些都是可以通过xhr对象的属性个方法所使用,主要有一下4个属性
responseText;作为相应主题返回的文本,(文本形式)
responseXML;如果响应的内容是‘text/xml’或者是application/xml;属性中将会保存响应数据的xml形式。DOM文档形式。
status: http的状态码(数字形式)
statusText;http状态说明,(文本形式)
异步请求流程:

 //创建xhr对象
 var xhr = new XMLHttpRequest();
    //异步接受响应
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                //实际操作
                result.innerHTML += xhr.responseText;
            }
        }
    }
    //发送请求
    xhr.open('get','message.xml',true);
    xhr.send();

同步接受响应:

var xhr = window.XMLHttpRequst;
   //发送请求
   xhr.open("GET","xx.xml",false);
   xhr.send();
   //同步接受响应
   if(xhr.readyState==4){
     if(xhr.status == 200){
        result.innerHTML += xhr.responseText;
     }
   }

readyState的属性,为4表示(DONE):完成。已经接收到全部响应数据,而且已经可以在客户端使用了。

websocket全面的解析参见:
http://www.cnblogs.com/wei2yi/archive/2011/03/23/1992830.html
它是HTML5标准的客户端-服务器的异步通信方法,比http方式更先进。
XHR受到域的限制,而WebSocket允许跨域通信。
Socket.IO是Guillermo Rauch创建的WebSocket API,
建立客户端Socket.IO
// 创建Socket.IO实例,建立连接
var socket= new io.Socket(‘localhost’,{
port: 8080
});
socket.connect();

// 添加一个连接监听器

socket.on('connect',function() { 
  console.log('Client has connected to the server!'); 
});

// 添加一个连接监听器
socket.on('message',function(data) { 
  console.log('Received a message from the server!',data); 
});

// 添加一个关闭连接的监听器
socket.on('disconnect',function() { 
  console.log('The client has disconnected!'); 
}); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值