ajax技术介绍

ajax技术介绍ajax 技术

前言

关于ajax对于大多数前段框架,都自己在jquery的ajax基础上进行了封装,底层原理实现大致一致,了解ajax实现方式,并能够使用原生ajax方式编程,在后续基础上在慢慢了解原生ajax实现的底层代码即可.

1 ajax简介

ajax技术相当于异步js和xml。ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 ajax)如果需要更新内容,必需重载整个网页面。

web发展过程中,为了改善传统web应用中,请求–>等待–>响应这种模式的弊端和提高用户的体验度,相对于传统的模型:服务器响应数据之前,用户对页面不能进行其他操作,导致用户体验较差.从而导致ajax技术:服务器响应数据之前,用户对于页面还是可以操作的,等优势来提高用户体验度和交互体验.

ajax在javascript中使用ajax技术,调用浏览器提供的XMLHttpRequest对象进行请求访问.向服务器发送的请求是异步的,此时浏览器没有丢失任何数据,用户仍然可以对页面进行操作.

2 ajax技术实现描述

(2.1)、创建XMLHttpRequest 对象

 *XMLHttpRequest对象 是 AJAX 的基础。 --> 使用Ajax 必须先得到XMLHttpRequest对象 *XMLHttpRequest xmlReq = new XMLHttpRequest(); (IE5 和 IE6 使用 ActiveXObject) IE5&IE6 没有 XMLHttpRequest 对象 需要获取 ActiveXObject (移动、联通、电信、广电 --> OA 管理系统 全部必须 运行在(ie) IE6 上) *对于不同浏览器 获取的方式不一样(IE7 以下的版本) 

(2.2)、向服务器发送请求

 *XMLHttpRequest对象 open(method ,url ,async); --> 对请求进行设定(请求地址,请求方式,同异步) post|get 请求地址 同步|异步 async:参见JAVA同步锁 send(); --> 发送 *get open(method ,url ,async); //需要携带数据,在url后面拼接 send();//不能 传参 *post open(method ,url ,async); //如果有参数 需要设定 请求头的 contextType setRequestHeader("Content-type","application/x-www-form-urlencoded"); send();//如果有参数,可以写在send(参数) string类型的-->key=value&key1=value1…… 

(2.3)、等待服务器响应,处理响应结果

 onreadystatechange = 方法 循环调用方法 readyState 的状态码 判断什么时候执行 0: 请求未初始化(没有调用open()) 1: 服务器连接已建立(有没有调用 send()) 过渡状态 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪 responseText 默认值是一个空字符串 当请求状态没有变成4时 即便浏览器已经拿到了数据 也不会 将拿到的值 赋值给responseText, 当请求状态变为4时,才会去赋值 status 的页面状态码 判断响应是不是正常,常见的状态码有:200,404,500,403,201 

3 ajax请求几种实现方式

(3.1) $.getJSON(url,data,callback); // 是以 HTTP get 方式提交请求

url: ajax请求地址 data: ajax请求时需要携带的参数 callback: ajax请求完成时调用函数(function) getJSON 接收的是服务返回的字符串,将返回的字符串,按照JSON格式字符串进行转换成JSON对象。 function(data){ // data 表示的时 请求后 服务器返回的JSON对象 } 

(3.2) $.post(url,data,callback,type) 是以 HTTP post 方式提交请求

 url:       ajax请求地址
 data:      ajax请求时需要携带的参数
 callback:  ajax请求完成时调用函数       
 function(data){   
    // data 表示的时  请求后  服务器返回数据
 }
 type:指定返回数据的类型
 方法本身根据type指定的类型进行预处理
 被返回的数据的类型 (html,xml,json,jasonp,script,text)
 如果不指定默认是响应头中Content-Type 指定的类型
 根据返回的字符串格式进行自动转换   

(3.3) $.get(url,data,callback,type)是以 HTTP get 方式提交请求

url:        ajax请求地址
data:       ajax请求时需要携带的参数
callback:   ajax请求完成时调用函数
function(data){   
    // data 表示的时  请求后  服务器返回数据
}
type:       指定返回数据的类型
方法本身根据 type 指定的类型  进行预处理
被返回的数据的类型 (html,xml,json,jasonp,script,text)
如果不指定默认是响应头中Content-Type 指定的类型
根据返回的字符串格式进行自动转换

(3.4) $(selector).load(url,data,callback)

把远程数据加载到被选的元素中,正常的ajax请求发送,服务器正常响应,load获取到数据,将数据直接写入到 调用 load方法的 元素中 url: ajax请求地址 data: ajax请求时需要携带的参数 callback: ajax请求完成时调用函数 function(data){ // data 表示的时 请求后 服务器返回数据 } 

(3.5) $.ajax(options) jquery的普通AJAX方法

options -->   json格式的字符串     (用户自定义)
key:value,key:value   
async           同异步   true|false
data            请求需要传递的参数   JSON格式字符串|String
dataType        请求服务器,服务器返回的数据类型   text|json|xml|html|script|jsonp
error           请求错误时执行的方法    function(){}
success         请求成功后执行的方法    function(){}
type            请求类型   get|post|put|delete 
url             请求地址    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220317.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:45
下一篇 2026年3月17日 下午8:45


相关推荐

  • Oracle 正则表达式以及常用正则函数

    Oracle 正则表达式以及常用正则函数Oracle正则表达式以及常用函数正则表达式简介正则表达式基础Oracle常用函数正则表达式简介菜鸟教程练习网站1练习网站2练习网站3练习网站4软件下载什么是正则表达式?正则表达式,又称规则表达式。(英语:RegularExpression,在代码中简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。什么时候会用到正则表达式?数据验证字符串查找字符串替换正则表达式基础元字符描述

    2022年6月1日
    66
  • mysql将字符串转为数字

    mysql将字符串转为数字MySQL字符串+0即可转为数字:<!–查找版本是否满足区间–><selectid="isVersion"resultType="java.lang.String"parameterType="map">SELECTversion_idfromjob_release_versionwheresrc_ver…

    2022年5月29日
    46
  • 锂电池充电IC_锂电池充电器电路

    锂电池充电IC_锂电池充电器电路HE4484E是一款5VUSB适配器输入,高精度双节锂离子电池充电管理芯片。具有0V充电功能,涓流充电、恒流充电、恒压充电和自动截止、自动再充等一套完整充电循环的充电管理芯片。芯片内部特设9V抗浪涌,芯片应用更安全可靠。HE4484E标准浮充电压为8.40V,其底部带有散热片接地的ESOP8封装,极其精简的外部器件,使得HE4484E成为便携式双节锂锂电池充电应用的理想选择。HE4484E适合USB适配器或其它5V适配器工作,极大降低了外部配件成本。当输入电压(USB电源或AC适配器)被拿掉时,HE4484

    2022年10月6日
    3
  • 瓦片地图拼接_开源瓦片地图

    瓦片地图拼接_开源瓦片地图瓦片地图(TiledMap)瓦片地图(TileMap)不但生成简单,并且可以灵活的用于Cocos2d-x引擎。不论你的游戏是角色扮演游戏,平台动作游戏或仿打砖块游戏,这些游戏地图可以使用开源的瓦片地图编辑器TiledMapEditor生成并保存为TMX文件格式,被Cocos2d-x支持。TMX瓦片地图格式Cocos2d支持被Tiled创建的地图文件(TMX)。Tiled的2个版本…

    2025年8月16日
    2
  • 如何通过jmeter测试大模型性能【QPS篇】

    如何通过jmeter测试大模型性能【QPS篇】

    2026年3月13日
    3
  • 设置窗体透明 隐藏任务栏 与全屏显示

    设置窗体透明 隐藏任务栏 与全屏显示

    2021年8月6日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号