Ajax之从头分析

本文详细介绍了Ajax的概念,包括同步与异步的区别,以及XMLHttpRequest对象在实现异步请求中的作用。通过实例解释了HTTP请求的原理,探讨了GET和POST请求的用途与区别。接着,深入解析了XMLHttpRequest的使用方法,包括发送请求和获取响应。最后,通过一个简单的例子展示了Ajax查询和新建员工信息,并讨论了JQuery中Ajax的使用以及跨域问题的解决方案,如jsonp和XHR2。
摘要由CSDN通过智能技术生成

      不管你有没有接触过ajax开发,它的大名你一定听说过。可以说,没有ajax技术,就没有现在欣欣向荣的web开发的景象。那么什么是ajax呢。ajax的全称为Asynchronous JavaScript and XML,中文翻译为异步的JavaScript和XML。ajax并不是某种语言,而是一种技术。即无需重新加载整个网页的情况之下更够更新部分网页的技术。正是因为ajax技术,网页才可以实现异步更新,ajax改变了web开发的格局。

 

1-概念介绍

1.1-同步

       比如你正在填写一张有100多个字段的表单,你花了两个小时填写完毕,点击提交,等了5分钟,服务器告诉你你少填了一个字段,然后你找到了这个字段,提交,服务器又告诉你少填写了一个字段...如此往复几遍之后,你终于确定所有的字段都已经填写,忐忑的点击提交,服务器又告诉你邮箱地址这一项重复了,估计你已经想砸电脑了。

       这就是ajax出现之前的世界,只要稍微复杂一点的表单,填写起来都是噩梦。这就是我们说到的同步。

       所谓同步,就是客户端发起请求,服务器端进行处理及响应,而这个过程客户端完全是在等待。当服务器端响应完成之后,客户端会重新载入页面,如果有错误,只能再次发起请求,再次等待。这就让人很无奈了...

 

1.2-异步

       同样是上面的复杂的表单,当你填写到邮箱地址的时候,页面当时就把邮箱地址发送到服务器,服务器处理之后发现邮箱地址重复,将这个结果发送的页面。但是在这个过程中,你还是可以填写其他的内容,你可以给邮箱地址一栏添加样式,并不会重新刷新整个页面。这样一来,你所有的填写错误,都会在页面实时的显示出来,也可以实时的更正。这整合过程中,不会有整个页面的刷新、提交和等待。

       这就是ajax技术出现之后的异步的世界,所谓异步,客户端发起请求,服务端进行处理及相应,而这时客户端完全可以进行其他操作,不需等待,页面的操作和服务器之间的操作不会造成堵塞。

       那为什么之前不采用异步的方式呢?异步是怎么实现的?是因为同步的世界少了一个对象。

 

1.3-XMLHttpRequest

       有了这个对象,就可以将同步变成异步,它可以用于后台和服务器交换数据,而且数据的交换不需加载整个页面。所以说,有了这个对象,才有了使用ajax实现异步请求,进行局部刷新。那么,如何实现ajax技术呢?需要以下内容:

 

 

  • 运用HTML和CSS来实现页面,表达信息;
  • 运用XMLHttpRequest和web服务器进行数据的异步交换;
  • 运用JavaScript操作DOM,实现动态局部刷新。

       我们主要来看第二点:运用XMLHttpRequest和web服务器进行数据的异步交换。XMLHttpRequest(以下简称XHR)究竟如何来使用呢?首先需要实例化一个XHR对象:       

 

var request = new XMLHttpRequest();

       目前来说,绝大多数浏览器都支持标准的XHR对象及其构造函数。但是对于早期的IE5及IE6浏览器,是不能直接new的,可以使用如下方法,只需要判断有没有XMLHttpRequest这种定义,然后采取不同的方法即可。(当然现在已经基本不考虑IE5和IE6了)

 

var request;
if(window.XMLHttpRequest){
   request = new XMLHttpRequest();//other broswer;
}else{
   request = new ActiveXObject("Microsoft.XMLHTTP");//IE5,IE6
}

 

2-HTTP请求

       在学习XHR的相关知识之前,我们需要先来了解一下HTTP请求。

2.1-HTTP概念

       HTTP仿佛一个最熟悉的陌生人。经常听到它的名字,但是对于它是什么以及它的原理却不是很清楚。HTTP是计算机通过网络进行通信的规则,是浏览器能够从web服务器请求信息和服务。它是一种无状态协议,也就是说服务端不保留连接的相关信息,当发起请求、返回响应之后,连接就被关闭了,整个处理过程是没有记忆的;如果后续的处理需要之前连接中传递的一些信息,那么只能重新传递。

       一个完整的HTTP请求过程,通常有下面7个步骤:

 

 

  1. 建立TCP连接;          
  2. Web浏览器向Web服务器发送请求命令;
  3. Web浏览器发送请求头信息;
  4. Web服务器应答;
  5. Web服务器发送应答头信息;
  6. Web服务器向浏览器发送数据;
  7. Web服务器关闭TCP连接

 

2.2-HTTP请求 

       我们先来看一下请求的过程,一般来说,一个HTTP请求由四部分组成:

 

 

  1. HTTP请求的方法,比如是GET请求还是POST请求;
  2. 正在请求的URL,也就是请求的服务器的地址;
  3. 请求头,包含一些客户端环境信息,身份验证信息等;
  4. 请求体,也就是请求正文,请求正文中可以包含客户端提交的查询字符串信息,表单信息等

       一般请求头和请求体之间会有一个空行,用于区分二者。下图是一个典型的HTTP请求:

       

       可以看出,这个示例是一个登录操作,发送的是用户名和密码,而请求方式却是GET,这是非常不安全的,为什么呢?

 

2.3-GET和POST

       

       从字面意思可以看出,GET(得到)请求一般用于信息的获取,而POST(发送)请求一般用于修改服务器上的资源。其实可以理解为GET请求是安全的&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值