ajax

ajax

定义 :异步的JavaScript 和 XML
是一种综合技术:运用了XMLHTTPRequest (xhr) 和服务器交换数据,通过JavaScript 局部渲染页面,从而实现异步的局部更新

同步与异步

同步 代码按顺序执行,会阻塞代码执行(alert)
异步 不会阻塞代码

XMLHTTPRequest xhr

1 var xhr = new XMLHttpRequest(); 2 xhr.open("GET",'./be.txt',true) 3 //打开的方法 地址 是否异步 4 xhr.send(); 5 // 发送出去 6 xhr.onreadystatechange = function(){ 7 if(xhr.readyState === 4&&xhr.status == 200){ 8 /* 如果xhr的状态是第4个状态 响应码为200 */ 9 console.log(xhr.responseText); 10 //输出ajax 返回的文本内容 11 pp.innerHTML = xhr.responseText 12 } 13 }

xhr

  • open()
  • send()
  • setRequestHeader()
  • xhr.readtstate
    • 0,未初始化
    • 1,请求参数已准备,尚未发送请求
    • 2,已经发送请求,尚未接收响应
    • 3,正在接收部分响应
    • 4,响应全部接收完毕
  • stateText () 响应码
  • stateText 响应文本 Ok代表成功

优缺点

优点

  1. 不刷新更新页面,提升用户体验
  2. 异步的 提升页面的加载速度
  3. 减轻服务器压力,实现浏览器渲染

缺点

  • 对搜索引擎不友好

文件上传

1 var xhr = new XMLHttpRequest(); 2 // 建立xhr对象 3 xhr.open("POST","https://www.520mg.com/ajax/file.php",true); 4 // 打开http连接 5 var data = file.files[0]; 6 // 获取文件 7 var fdata = new FormData(); 8 fdata.append("file",data); 9 // 获取formData 要传递的表单文件 10 // 监听xhr的加载事件 11 xhr.upload.onprogress =function(e){ 12 // console.log(e); 13 // 监听上传文件的进度 14 console.log(e.loaded,e.total,Math.round(e.loaded/e.total*100)+"%") 15 // e。loaded是已上传,e.total总文件大小 16 } 17 xhr.onload = function(){ 18 console.log(xhr); 19 var res = JSON.parse(xhr.responseText); 20 // 把json字符串转换为javascript对象 21 if(res.error==0){ 22 var img = document.createElement("img"); 23 img.src ="https://www.520mg.com"+res.pic; 24 img.width=100; 25 // 创建一个图片 设置 src 与宽 26 document.body.append(img); 27 // 插入到页面中 28 29 } 30 31 } 32 xhr.send(fdata); 33 // 发送

ajax jquery

  • $.ajax()
  • $.get()
  • $.post()
  • 第三层
    • elem.load(xx) 加载xx内容 到elem元素
    • $.getScript(xxx) 加载xxx文件 执行js
    • $.getJSON(xx) 加载xx文件
  • 所有的jquery ajax方法 都支持三种写法
1$.getJSON(url,function(response,status.xhr){ 2 /* url 请求的地址 3 function 请求成功回调函数 4 response 请求响应的数据 5 status 'successs' 6 xhr.jquery的Promise 对象*/ 7 })

jquery ajax 相关函数调用方式

  1. 回调函数
1 $.getJSON(url,function(res,status,xhr){}) 2 3 //2. promise 函数 4 5 $.getJSON(url) 6 .then(res=>{}) 7 .catch(err=>{}) 8 9 $.getJSON(url) 10 .done(res=>{}) 11 .fail(err=>{}) 12 .always(res=>{})

fetch

get

1 fetch(url) 2 .then(res=>res.json{}) 3 .then()

post

1 fetch(url,{ 2 method:'POST', 3 body:"name=xiaoming&age=18", 4 headers:{'Content-Type':'application-x/www-form-urlencodeed'} 5 }) 6 .then() 7 .then

加载提示

1$(document).ajaxStart(function(){}) 2// 开始ajax
1$(document).ajaxStop(function(){}) 2// 结束ajax

$.ajax({})

  • url 请求的地址
  • method 请求的方法 GET | POST
  • dataType 返回数据类型 json jsonp text
  • jsonp 跨域回调方法 默认 callback
  • success 成功
  • error 失败
  • done 完成
  • fail 失败
  • beforeSend 发送前
  • compelete 发送完毕
  • Content-Type:'application/x-www-form-urlcoded'

$.get $.post

  • url
  • data(可选)
  • function(res,status,xhr)

jquery ajax Promise 对象

  • .then
  • .catch
  • .done
  • .fail
  • .always
  • status 状态 200
  • statusText ok
  • readyState 4
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

理解 Javascript 中的 Async / Await

在本文中,我们将探讨async/await,对于每个Javascript开发人员来说,是异步编程的首选工具。如果您不熟悉javascript,请不要担心,本文将帮助您async/await从头开始理解。介绍async/await是javascript中的一种模式,可使您的代码以同步方式执行,但又不影响javascript的异步行为。定义异步功能要定义一

java第五周

AJAX的工作原理及其工作原理:1.定义及工作原理  AJAXAsynchronousJavaScriptandXML(异步的JavaScript和XML)。AJAX不是新的编程语言,而是一种使用现有标准的新方法。AJAX不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。  AJAX是一种用于

AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)

1、什么是AjaxAjax是异步Javascript和XML(AsynchronousJavaScriptandXML)的英文缩写。"Ajax"这个名词的发明人是JesseJamesGarrett,而大力推广并且使Ajax技术炙手可热的是Google。Ajax的核心理念在于使用XMLHttpRequest对象发送异步请求。