察雅做网站

当前位置:

察雅网站建设,Ajax 原理是什么? 如何实现?

浏览量:2790次

察雅做网站察雅建网站



  一、AJAX是什么

  AJAX全称(Async Javascript and XML)

  即异步的JavaScript 和XML,是一种设立交互式网页使用的网页垦荒技艺,可以在不从头加载整个网页的环境下,与效能器换取数据,而且更新局部网页

  Ajax的事理容易来说经过XmlHttpRequest对象来向处事器发异步求告,从就事器失去数据,往后用JavaScript来哄骗DOM而更新页面

  下面举个例子:

  领导想找小李汇报一下工作,就寄与秘书去叫小李,自己就接着做别的事情,直到秘书演讲他小李也曾到了,着末小李跟领导报告请示任务

Ajax苦求数据流程与“向导想找小李报告请示一下工作”雷同,上述秘书就相当于XMLHtt网站建设pRequest对象,导游相当于涉猎器,相应数据相当于小李

  涉猎器梗概发送HTTP恳请后,接着做其他事情,等收到XHR返返来的数据再发展垄断

  二、AJAX实现进程

  实现 Ajax异步交互须要效力器逻辑进行配合,需求完成以下轨范:

  建树 Ajax的中心对象 XMLHttpRequest对象

  经由过程 XMLHttpRequest 对象的 open 方法与管事端建立邻接

  构建乞请所需的数据模式,并通过XMLHttpRequest 对象的 send 门径发送给效劳器端

  经由过程 XMLHttpRequest 对象供应的 onreadystatechange 事情监听管事器端你的通信外形

蒙受并处置惩罚干事端向客户端网站建设响应的数据下场

  将处理究竟更新到 HTML页面中

  构建XMLHttpRequest对象

  颠末XMLHttpRequest 组织函数用于初始化一个 XMLHttpRequest 实例对象

  const xhr=new XMLHttpRequest;

  与管事器建立毗邻

  经由 XMLHttpRequest 对象的 open 法子与效劳器建立联接

  xhr.open(method, url, [async][, user][, password])

  参数阐明:

  method:展现今朝的乞请方式,思空见贯的有GET、POST

  url:效劳端地址

  async:布尔值,展现是否异步执行操作,默以为true

user: 可选的用户名用于网站建设认证用处;默许为`null

  password: 可选的明码用于认证用途,默认为`null

  给做事端发送数据

  经由历程 XMLHttpRequest 对象的 send 办法,将客户端页面的数据发送给效能端

  xhr.send([body])

  body: 在 XHR 求告中要发送的数据体,要是不传递数据则为 null

  假定使用GET乞求发送数据的时辰,需求把稳下列:

  将恳求数据增多到open方法中的url所在中

  发送恳请数据中的send法子中参数配置为null

  绑定onreadystatechange事宜

onreadystatechange 事情用于监听效力器端的通信形态,首要监听的属性为XMLHttpRequest网站建设.readyState ,

  对付XMLHttpRequest.readyState属性有五个形状,如下图显示

  只要 readyState属性值一更换,就会触发一次 readystatechange 事项

  XMLHttpRequest.responseText属性用于接管效力器真个相应到底

  举个例子:

  const request=new XMLHttpRequest

  request.onreadystatechange=function(e){

  if(request.readyState===4){ // 整个恳请过程完毕

if(request.status >=200 && request.status <=网站建设300){

  console.log(request.responseText) // 效劳端前往的结果

  }else if(request.status >=400){

  console.log("纰谬新闻:" + request.status)

  }

  }

  }

  request.open('POST','http://xxxx')

  request.send

  三、AJAX封装

  通过上面对XMLHttpRequest对象的相识,下面来封装一个简单的ajax苦求

  //封装一个ajax央求

  function ajax(options) {

  //竖立XMLHttpRequest对象

const xhr=new XMLHttpRequest网站建设

  //初始化参数的内容

  options=options || {}

  options.type=(options.type || 'GET').toUpperCase

  options.dataType=options.dataType || 'json'

  const params=options.data

  //发送请求

  if (options.type==='GET') {

  xhr.open('GET', options.url + '?' + params, true)

  xhr.send(null)

  } else if (options.type==='POST') {

xhr.open('POST', optio网站建设ns.url, true)

  xhr.send(params)

  //领受求告

  xhr.onreadystatechange=function {

  if (xhr.readyState===4) {

  let status=xhr.status

  if (status >=200 && status < 300) {

  options.success && options.success(xhr.responseText, xhr.responseXML)

  } else {

  options.fail && options.fail(status)

  }

  }

  }

  }

  使用方式下列

  ajax({

  type: 'post',

dataType:网站建设 'json',

  data: {},

  url: 'https://xxxx',

  success: function(text,xml){//乞请告捷后的回调函数

  console.log(text)

  },

  fail: function(status){央求失利后的回调函数

  console.log(status)

  }

  })

  --The End--

察雅做网站就找春秋科技,春秋科技是一家专注于察雅网站建设、察雅网站设计、察雅网站制作、察雅做网站、察雅建网站等服务的察雅网站建设公司。已成功帮助10000多家企业实现网上盈利,为企业提供察雅网站建设一站式服务。

24小时服务热线:13733108860

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【】,我们在确认后,会立即删除,保证您的版权。