千家信息网

原生Ajax与JQuery Ajax实例分析

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"原生Ajax与JQuery Ajax实例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"原生Ajax与JQuery Ajax实例分析"
千家信息网最后更新 2025年02月06日原生Ajax与JQuery Ajax实例分析

本篇内容主要讲解"原生Ajax与JQuery Ajax实例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"原生Ajax与JQuery Ajax实例分析"吧!

一、Ajax简介。

1、AJAX全称:异步的JavaScript和XML

2、AJAX不是编程语言,是一种无需重新载入整个页面,能够更新部分网页的技术。

3、要想更新内容或者提交一个表单,就要重新载入整个页面;使用AJAX技术的页面,通过与后台服务器进行少量的数据交换,就可以实现异步局部更新。

4、同步和异步:

同步:需要更新内容或者提交表单时,需要对整个页面向服务器请求->服务器处理、响应->页面载入

如果错误,再次请求,等待,响应;需要对整个页面解析重新载入,很多时候等待的时间很长,让人很抓狂。

异步:针对页面部分内容进行请求,服务器处理响应,页面刷新载入这一部分;这中间不会影响页面其他交互,无需进行等待,提升了用户体验。

二、Ajax概念

1、XMLHttpRequest对象

IE5、IE6支持Active X对象。

所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。

在新浏览器上,创建对象很简单,使用构造函数:var xhr=new XMLHttpRequest();老浏览器可能不常用,但我们要考虑在里边,兼容老浏览器:

function createXHR(){    if(typeof XMLHttpRequest !="undefined"){//如果浏览器不支持XMLHttpRequest对象,就使用IE5、IE6对象ActiveXObject        return new XMLHttpRequest();    }else if(typeof ActiveXobject !="undefined"){        if(typeof arguments.callee.activeXString !="string"){            var versions=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],                i,len;                for(i=0,len=versions.length;i

这个函数首先检测原生XHR对象是否存在,如果存在,就返回它的实例。XHR不存在,检测ActiveX对象;否则,抛出错误。
创建兼容的XHR对象就可以使用:var xhr=createXHR();

2、HTTP请求

在运用Ajax之前,我认为先了解HTTP更有助于理解Ajax方法。

HTTP是一种应用进程与服务器之间连接的协议,无状态协议,也就是没有记忆,每一次请求都需要重新建立连接。

HTTP请求过程:

1>建立TCP连接

2>Web浏览器向Web服务器发送请求命令

3>Web浏览器发送请求头信息

4>Web服务器应答

5>Web服务器发送应答头信息

6>Web服务器向浏览器发送数据

7>Web服务器关闭TCP连接

HTTP状态码:

  • 1XX:信息类,表示收到Web浏览器请求,正在进一步处理中

  • 2XX:成功,表示用户请求被正确接收,如200

  • 3XX:重定向,表示请求没有成功,客户必须采取进一步动作

  • 4XX:客户端错误,表示客户端提交的请求有错误,例如:404 NOT Found,意味着请求中所引用的文档不存在

  • 5XX:服务器错误,表示服务器不能完成对请求的处理,如:500

3、XHR用法

向服务器发送请求,需要使用XMLHttpRequest对象的open()和send()方法。

方法描述
open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string)将请求发送到服务器。
string:仅用于 POST 请求

发送请求:

xhr.open("get","example","false")//同步xhr.send(null);同步:JavaScript 会等到服务器响应就绪才继续执行。

异步:在等待服务器响应时执行其他脚本;

当响应就绪后对响应进行处理。

① 当服务器响应后会填充XHR对象属性

->responseText 获得字符串形式的响应数据。

->responseXML 获得 XML 形式的响应数据。

->status 响应的HTTP状态码

->statusText HTTP状态码说明

② 异步下检测XHR对象的readyState属性,请求过程中的活动阶段:

->0:未初始化,尚未调用open()方法

->1:启动,已经调用open()方法,但未调用send()方法

->2:发送,已经调用send()方法,尚未接到响应

->3:接收,已接收部分数据

->4:完成,已经接收全部响应数据。

readyState改变就会触发一次readyStatechange事件,可以利用这个事件来检测readyState变化的值。必须在open()之前指定onreadyStatechange事件处理程序。

var xhr=createXHR();xhr.onreadyStatechange=function(){  if(xhr.readyState==4){      if(xhr.status >=200 && xhr.status<300){            alert(xhr.responseText);      }else{            alert("Request was unsuccessful:"+xhr.status);      }  }}xhr.open("get","example.txt",true);xhr.send(null);

默认情况下,在发送XHR请求的同时,还会发送一些默认的头部信息。

使用 setRequestHeader() 可以设置自定义的请求头部信息:这个方法接收2个参数,头部字段的名称和头部字段的值。

setRequestHeader() 方法必须在open()后,send()前调用

xhr.open("get","example.txt",true); xhr.setRequestHeader("myheader","myvalue"); xhr.send(null);调用XHR对象的getRequestHeader() 方法,并传入头部字段名称可以取得相应的响应头部信息。

③ get请求、post请求

  • get 请求

  • 常用于向服务器查询(获取)某些信息,需要注意传入的URL格式,查询的字符串参数名称和值都必须经过 encodeURIComponent() 进行编码,然后放到URL末尾;而且所有的名称和值和后一个需用"&"隔开。

  • xhr.open("get","example.php?name1=value1&name2=value2",true);可向现有url后添加查询字符串参数:

function addURLParam(url,name,value){    url +=(url.indexOf("?") == -1  ?  "?" : "&");//检测url后是否已有参数    url +=encodeURIComponent(name) + "=" + encodeURIComponent(value);    return url;}//示例var url="example.php";//添加参数url=addURLParam(url,"name","Nico");//初始化请求xhr.open("get",url,true);
  • post请求
    下列情况使用:
    ->无法使用缓存文件(更新服务器上的文件或数据库)
    ->向服务器发送大量数据(POST 没有数据量限制)
    ->发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
    如果需要像 HTML 表单那样 POST 数据;首先使用 setRequestHeader() 来设置 HTTP 头"Content-type"为"application/x-www-form-urlencoded",其次以适当格式创建字符串。

var xhr=createXHR();//省略xhr.open("POST","ajax_test.asp",true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");var form=document.getElementById("user-info");xhr.send(serialize(form));

三、jQuery - AJAX

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

  • jQuery $.get() 方法
    语法:$.get(URL,callback);
    必需的 URL 参数规定您希望请求的 URL。
    可选的 callback 参数是请求成功后所执行的函数名。
    例子:

$("button").click(function(){    $.get("demo_test.asp",function(data,status){      alert("Data: " + data + "\nStatus: " + status);    });});```+ jQuery $.post() 方法语法:$.post(*URL*,*data*,*callback*);必需的 *URL* 参数规定您希望请求的 URL。可选的 *data* 参数规定连同请求发送的数据。可选的 *callback* 参数是请求成功后所执行的函数名。例子:
$("button").click(function(){$.post("demo_test_post.asp",{name:"Donald Duck",city:"Duckburg"},function(data,status){alert("Data: " + data + "\nStatus: " + status);});});

$.post() 的第一个参数是我们希望请求的 URL ("demo_test_post.asp")。
然后我们连同请求(name 和 city)一起发送数据。
"demo_test_post.asp" 中的 ASP 脚本读取这些参数,对它们进行处理,然后返回结果。
第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态。

到此,相信大家对"原生Ajax与JQuery Ajax实例分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

服务器 服务 参数 方法 对象 数据 浏览器 页面 浏览 处理 信息 内容 头部 函数 字符 状态 错误 同步 更新 检测 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发的这点事儿 瑞安只婪网络技术有限公司 联通软件开发面试经验 西安华夏网络技术公司招聘 贵州网络安全法试题及答案 软件开发行业的会计分录 打工日记软件开发 机关单位网络安全工作管理方案 滨州网络安全技术创新 网络安全的领域有哪些 后端软件开发工作经历 lol显示正在连接服务器怎么办 网络安全威胁社会和国家 电力网络安全督查检查 数据库技术产品调研报告 深圳橙社网络技术公司地址 加网络安全设备会影响网络结构吗 周鸿祎基建网络安全防护体系 服务器管理面板 那个好用 打印机万能驱动服务器 校园网络安全知识答题竞赛 广西警察学院网络技术 大学网络技术部干嘛的 网络安全法四大要点 常州app软件开发制作 db2还原数据库语句 第二个数据库 网络安全要求梳理三部曲 网信办网络安全协调局局长 pkhex不能与数据库中
0