什么是Ajax与Ajax原生的实现方式

Posted xq-943746

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是Ajax与Ajax原生的实现方式相关的知识,希望对你有一定的参考价值。

一、什么是Ajax?

  Aiax:异步的javascript和XML。

作用:用于完成局部刷新

XML是用于数据传输,现在开始被JSON所替代。

1.1、交互方式问题

  传统的交互方式每次都必须返回整个页面,宽带,响应速度都有影响的,

  Ajax的交互方式是从

客户端(浏览器)从服务器加载网页完毕后,网页中的内容如果需要更改,不使用浏览器发送请求,而是使用JavaScript中的XMLHttpRequest(及Ajax对象)对象发送请求到服务器,服务器接收请求并处理完毕后只返回页面需要的内容,XMLHttpRequest对象接收服务器返回的内容,程序员需要手动(javascript)的把内容更新到页面中,所有Ajax交互的好处是只是部分数据的更新,就成功和服务器进行了交互,提高用户的体验。

1.2、使用场景

  需要刷新的页面,如(浏览器地图搜素、自动提示、用户重复检查、购物车、用户登录等.....)都需要用到Ajax交互。

1.3、Ajax的特点

  通过Ajax与服务器进行数据交换,Ajax可以使网页实现局部更新,意味着可以在不重新加载整个页面的情况下,对网页的某个部分进行更新 

1.4、Ajax核心

  Ajax的核心是JavaScript对象XMLHttpRequest。简单的说 XMLHttpRequest可以让你使用JavaScript向服务器进行请求并处理响应。

1.5、同步与异步的区别

 

  同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事

 

  异步: 请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕

 

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

 

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式

 

 

二、Ajax原生的实现方式

  xhr = new XMLHttpRequest() : 通过new它可以创建一个ajax对象【兼容IE需要创建ActiveXObject】

2.1、方法(函数)
  xhr.open(methodType,methodUrl,isSys) -> 准备请求的方式与路径
  methodType:请求的方式(GET/POST)
  methodUrl:请求的路径
  isSys:是否异步(默认为true)
  xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  设置请求头的一个类型,如果是POST请求,一定要加这一句,才可以把数据传到后台
  位置:open之后,send之前
  xhr.send(varBody) -> 发送请求
  varBody:POST请求传参(key=value&key=value&...)
2.2、 属性
xhr.status -> 请求状态(200代表成功)
xhr.readyState -> 响应状态(4代表响应完成)
xhr.responseText -> 获取返回的数据(字符串)
2.3、事件
xhr.onreadystatechange =function() -> 监听readyState状态的变化

三、注意点

  使用Ajax请求,后台不进行跳转,只做数据的传输

返回的值都是字符串,需要自己做相当的判断与转换

四、JSON:JS的对象 对象/字符串

json传输数据比XML更加方便,简单,精简
var jsonStr = /[];
如果把一个json字符串转成json对象呢?
eval("("+jsonStr+")") -> 前后加括号
JSON.parse(jsonStr) -> 必需是标准的json(key必需有双引号)

 

以上是关于什么是Ajax与Ajax原生的实现方式的主要内容,如果未能解决你的问题,请参考以下文章

关于Ajax的相关问题总结

js原生实现ajax

Ajax 的几种实现方式

原生ajax的实现步骤

第2章第300回原生JS与jQuery对AJAX的实现

原生javaScript中使用Ajax实现异步通信