前端JS之AJAX简介及使用

概述

AJAX 是一个缩写,它的全名是 Asynchronous JavaScript and XML,意思就是异步 JavaScript 和 XML,即用JavaScript执行异步网络请求。

AJAX 不是一种新技术,而是一个在 2005 年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:

HTML 或 XHTMLCSSJavaScriptDOMXMLXSLTXMLHttpRequest

尽管 X 在 AJAX 中代表 XML, 但由于 JSON 的许多优势,比如更加轻量以及作为 Javascript 的一部分,目前 JSON 的使用比 XML 更加普遍。JSON 和 XML 都被用于在 AJAX 模型中打包信息。

AJAX 的优势

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。

AJAX 通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

XMLHttpRequest 对象

XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。XMLHttpRequest 在 AJAX 编程中被大量使用。

AJAX 的工作原理

其工作原理基本经过以下几个步骤:

客户端发送请求,请求交给 xhr。xhr 把请求提交给服务。服务器进行业务处理。服务器响应数据交给 xhr 对象。xhr 对象接收数据,由 JavaScript 把数据写到页面上。

AJAX 的创建步骤

根据 AJAX 的工作原理,它的创建步骤主要包括:

创建 XMLHttpRequest 对象,即创建一个异步调用对象。创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息。设置响应 HTTP 请求状态变化的函数。发送 HTTP 请求。获取异步调用返回的数据。使用 JavaScript 和 DOM 实现局部刷新。AJAX 的具体使用

以下是 使用 AJAX 的完整流程。

1. 创建 XMLHttpRequest 对象const request = new XMLHttpRequest();2. 创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息

创建 HTTP 请求可以使用 XMLHttpReques t对象的 open() 方法,其语法代码如下:

request.open(method, url, async, user, password);

参数解析:

method 要使用的HTTP方法,比如 "GET"、"POST"、"PUT"、"DELETE" 等。url 表示要向其发送请求的 URL 地址。async (可选) 一个可选的布尔参数,表示是否异步执行操作,默认为 true。如果值为 false,send() 方法直到收到答复前不会返回。如果 true,已完成事务的通知可供事件监听器使用。如果 multipart 属性为 true 则这个必须为 true,否则将引发异常。user (可选 用于认证用途的用户名,默认值为 null。password (可选) 用于认证用途的密码,默认值为 null。3. 设置响应 HTTP 请求状态变化的函数和服务端返回信息函数

创建完 HTTP 请求之后,应该就可以将 HTTP 请求发送给 Web 服务器了。然而,发送 HTTP 请求的目的是为了接收从服务器中返回的数据。从创建 XMLHttpRequest 对象开始,到发送数据、接收数据、XMLHttpRequest 对象一共会经历以下 5 种状态:

未初始化状态。在创建完 XMLHttpRequest 对象时,该对象处于未初始化状态,此时 XMLHttpRequest 对象的 readyState 属性值为 0。初始化状态。在创建完 XMLHttpRequest 对象后使用 open() 方法创建了 HTTP 请求时,该对象处于初始化状态。此时 XMLHttpRequest 对象的readyState属性值为 1。发送数据状态。在初始化 XMLHttpRequest 对象后,使用 send() 方法发送数据时,该对象处于发送数据状态,此时XMLHttpRequest 对象的 readyState 属性值为 2。接收数据状态。Web 服务器接收完数据并进行处理完毕之后,向客户端传送返回的结果。此时,XMLHttpRequest 对象处于接收数据状态,XMLHttpRequest 对象的 readyState 属性值为 3。完成状态。XMLHttpRequest 对象接收数据完毕后,进入完成状态,此时 XMLHttpRequest 对象的 readyState 属性值为 4。此时接收完毕后的数据存入在客户端计算机的内存中,可以使用 responseText 属性或 responseXml 属性来获取数据。

总的来说,readyState 属性的值有以下几种:

0 (未初始化) or (请求还未初始化)1 (正在加载) or (已建立服务器链接)2 (加载成功) or (请求已接受)3 (交互) or (正在处理请求)4 (完成) or (请求已完成并且响应已准备好)

只读属性 XMLHttpRequest.status 返回了 XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status 的值为 0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为0:

UNSENT(未发送) 0OPENED(已打开) 0LOADING(载入中) 200DONE(完成) 200var xhr = new XMLHttpRequest();console.log('UNSENT', xhr.readyState); // readyState 为 0xhr.open('GET', '/api', true);console.log('OPENED', xhr.readyState); // readyState 为 1xhr.onprogress = function () { console.log('LOADING', xhr.readyState); // readyState 为 3};xhr.onload = function () { console.log('DONE', xhr.readyState); // readyState 为 4};xhr.send(null);

只有在XMLHttpRequest对象完成了以上5个步骤之后,才可以获取从服务器端返回的数据。因此,如果要获得从服务器端返回的数据,就必须要先判断XMLHttpRequest对象的状态:

const xhr = new XMLHttpRequest();xmlHttpRequest.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // do something here }}4. 发送HTTP请求XMLHttpRequest.send(data);结束

最后,附上一个简单的完整 AJAX 实例:

Make a request

~

~

~ 本文完

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好!我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

前端JS之AJAX简介及使用

AJAX是什么?如何在JavaScript中使用

JavaScript能流行,一个很重要的原因是AJAX技术的应用。在网页中有很多的应用。举两个常见的AJAX应用的例子:
1、 在搜索中,我们输入关键字时,网页会实时展现搜索结果;这是用AJAX实现的。
2、 使用地图时,地图会根据用户显示的位置不停的更新。这也是通过AJAX实现。

那么什么是AJAX呢?
AJAX全称为Asynchronous JavaScript And XML直译就是异步的JavaScript和XML(这里我们主要介绍下JavaScript中AJAX的应用)
通常当JavaScript向服务器发送请求获取数据时,服务器会返回数据。在传统没有使用AJAX的网页中,需要刷新页面使其重新加载。而AJAX可以使网页在不重新加载页面的情况下对网页的局部进行更新。(比如,当你要放大地图的时候,你会不断的向服务器请求地图当前位置的详细信息,服务器返回数据给你,这里我们并不需要重新加载整个页面,不然用户体验就太差了。而是局部更新页面。)

由于我不可能在这写一个地图这样复杂的例子,而为了演示AJAX的使用,我借用了秒秒学的一个简单示例:

// 简单的AJAX举例。

// 1: 创建请求变量
var myRequest;

// 浏览器的特征检查。
if (window.XMLHttpRequest) { //若支持,则是火狐、谷歌等浏览器。
myRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // 若不支持, 则是IE浏览器。
myRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

// 2: 为请求添加事件处理代码。
myRequest.onreadystatechange = function(){
console.log("匿名函数被调用!");
console.log(myRequest.readyState);
if (myRequest.readyState === 4) {
var p = document.createElement("p");
var t = document.createTextNode(myRequest.responseText);
p.appendChild(t);
document.getElementById("mainContent").appendChild(p);
}
};

// 3: 配置发送请求
myRequest.open(GET, simple.txt, true);
myRequest.send(null);

//....

使用AJAX主要分三部分,如示例中的
1、 创建请求的变量。
在script文件中,首先声明XMLHttpRequest对象,这也是题主说的Ajax的核心。浏览器页面能通过XMLHttpRequest对象和服务器进行通讯。因为这个对象的创建因浏览器的不同而有区别。所以我们要用if语句判断XMLHttpRequest是否存在。

2、 为请求添加事件处理代码
创建好XMLHttpRequest对象后,就可以向服务器发送请求了,不过我们首先处理服务器响应的事件。当服务器响应后会触发myRequest对象的onreadystatechange事件。
在onreadystatechange事件中我们看到myRequest调用了readyState属性,readyState有4个值表示目前响应所在的阶段,各数值表示如下:
l 1:请求已经建立,但是还没有发送(还没有调用 send())。
l 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
l 3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
l 4:响应已完成;您可以获取并使用服务器的响应了。
我们一般只关心readyState的值为4的情况,表示响应已完成。

3、 配置发送请求
使用open方法配置请求。它有三个参数:
1、第一个参数表示用GET获取服务器中的数据。
2、第二个参数是一个服务器地址,这里我们用本地的simple.txt代替,省去创建服务器的麻烦。
3、第三个参数true表示请求是异步的,即当请求发送后,JavaScript不会为了等待服务器的响应而阻塞,它会继续执行后续代码。

配置好请求后,用send方法发送请求,这里给send传递的参数是null,若有其它参数需要发送,也可以传递给send方法。

这样AJAX的简单使用例子就说完了,以上示例来自教程网站秒秒学,希望对你有帮助。

前端JS之AJAX简介及使用

学习Web前端要知道的JavaScript、Ajax、jQuery知识

今天小编要跟大家分享的文章是关于学习Web前端要知道的JavaScript、Ajax、jQuery知识。今天小编将详细解读JavaScript、ajax、jQuery是什么?他们可以实现什么?想要学习Web前端的小伙伴们来和小编一起看一看吧!


1、JavaScript


·___ㄒ澹


javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能(其编写的程序可以被嵌入到HTML或XML页面中,并直接在浏览器中解释执行)。


·___槌刹糠郑


核心(ECMAScript)、文档对象模型(DocumentObjectModel,简称DOM)、浏览器对象模型(BrowserObjectModel,简称BOM)


·___枋觯


Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。


Javascript是由Netscape公司开发的一种脚本语言(scripting
language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。


Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。


Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。


主流的javaScript框架有:YUI,Dojo,Prototype,jQuery...


2、AJax


·___ㄒ澹


AJAX即“AsynchronousJavaScriptandXML”(异步JavaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。


_JAX不是一个技术,它实际上是几种技术,每种技术都有其独特之处,合在一起就成了一个功能强大的新技术。


·___槌桑


基于XHTML和CSS标准的表示;


使用Document
ObjectModel进行动态显示和交互;


使用XML和XSLT做数据交互和操作;


使用XML
HttpRequest与服务器进行异步通信;


使用JavaScript绑定一切。


·___枋觯


Ajax是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的管理。


Ajax技术使用非同步的HTTP请求,在Browser和WebServer之间传递数据,使Browser只更新部分网页内容而不重新载入整个网页。


Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。


3、jQuery


·___ㄒ澹


jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML
documents、events、实现动画效果,并且方便地为网站提供AJAX交互。


·___氐悖


轻量级、链式语法、CSS1-3选择器、跨浏览器、简单、易扩展;


jQuery是一种独立于服务器端代码的框架,独立于ASP.NET或者JAVA;


jQuery是当前很流行的一个JavaScript框架,使用类似于CSS的选择器,可以方便的操作HTML元素,拥有很好的可扩展性,拥有不少插件。


·___枋觯


对于程序员来说,简化javascript和ajax编程,能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。


对于用户来说,改善了页面的视觉效果,增强了与页面的交互性,体验更绚丽的网页物资。javaScript框架实际上是一系列工具和函数。


4、三者的关系


下面我用一张导图来阐述这三者的关系:





解释:


javaScript是用于Web客户端开发的脚本语言,Ajax是基于JS语言,主要组合JS、CSS、XML三种技术的新技术,是用于创建交互式网页应用的网页开发技术。jQuery是JS的框架,基于JS语言,集合Ajax技术开发出来的JS库,封装JS和Ajax的功能,提供函数接口,大大简化了Ajax,JS的操作。


以上就是小编今天为大家分享的关于学习Web前端要知道的JavaScript、Ajax、jQuery知识的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助。想要了解更多Web前端知识记得关注北大青鸟Web培训官网。最后祝愿小伙伴们工作顺利,成为一名优秀的Web前端工程师!


原文链接:#/u/155352/blog/789347






SHAPE\*MERGEFORMAT


SHAPE\*MERGEFORMAT

上一篇: 女销售原来靠这样卖房(楼盘置业顾问提成大概多少)
下一篇: 加班的原因分析报告,加班原因怎么写