Ajax初步学习01

代码逐风
• 阅读 914

本文用于记录关与ajax这项技术的学习过程.

Ajax

Ajax (Asynchronous JavaScript and XML) 是一种Web应用技术,可以借助客户端脚本(javascript)与服务端应用进行异步通讯,获取服务端数据以后,可以进行局部刷新。进而提高数据的响应和渲染速度.

这就是Ajax的一个简单介绍,其特点与优势也都已经用加粗表示.

其中异步通讯,相对于同步通讯来说,
同步通讯就是当服务端正在处理一个请求时,若客户端有其他请求要提交也只能等待;
而基于Ajax的异步通讯就是在客户端与服务端中加入一层Ajax引擎(类似于池),可以帮助我们实现异步的作用,不用再是处理就等待,会有新的请求开启一个新的线程来进行处理.

优势:
底层异步/局部刷新/提高响应速度
劣势:
不能跨域进行访问

应用场景:
例如:商品系统(淘宝京东显示商品)/评价系统/地图系统...

入门实践

首先要了解所有的Ajax 请求都会基于DOM(HTML元素)事件,通过XHR(XMLHttpRequest)对象实现与服务端异步通讯局部更新

先将整体代码放在这里,后面按步骤介绍:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax 01 Page</h1>
<div>
    <!-- Ajax方式异步请求 -->
    <fieldset>    <!-- 分组设置 -->
        <legend>异步请求</legend>
        <button onclick="doAjaxGet()">GET Request</button>
        <span id="ajaxResultId">loading data...</span>
    </fieldset>
</div>
<script type="text/javascript">
    function doAjaxGet(){
        //1.创建XHR对象
        var xhr=new XMLHttpRequest();
        //2.设置状态监听(将服务端响应的结果更新在ajaxResultId位置)
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                console.log(xhr.responseText);
                document.getElementById("ajaxResultId").innerHTML=xhr.responseText;
            }
        }
        //3.建立连接
        xhr.open("GET","http://localhost/doGet",true);//true表示异步(底层会启动新的线程和服务端通信)
        //4.发送请求
        xhr.send();
        console.log("==================");
    }
</script>
</body>
</html>

1.基于dom事件创建XHR对象(XMLHttpRequest对象)

//1.创建XHR对象
var xhr=new XMLHttpRequest();

new XMLHttpRequest()是应用Ajax技术的入口,通过这个对象可以向服务端发送异步请求.

2.注册XHR对象状态监听,通过回调函数(callback)处理状态信息

//2.设置状态监听(将服务端响应的结果更新在ajaxResultId位置)
xhr.onreadystatechange=function(){
    if(xhr.readyState==4&&xhr.status==200){
        console.log(xhr.responseText);
    document.getElementById("ajaxResultId").innerHTML=xhr.responseText;
    }
}

这是在注册状态监听,就是监听客户端和服务端通讯的状态,
if判断--
readyState==4表示客户端与服务端通讯结束(0:未初始化,尚未调用open()方法;1:启动,已经调用open()方法,但尚未调用send()方法;2:发送,已经调用send()方法,但尚未接收到响应;3:接收,已经接收到部分响应;4:完成,已经接收到全部响应数据,而且已经可以在客户端使用了)

status==200表示服务端处理过程正常(500表示服务端出错了)

responseText表示服务端响应的文本内容

3.创建与服务端的连接

//3.建立连接
xhr.open("GET","http://localhost/doGet",true);

open()方法用于与服务端建立连接,并指定请求类型为GET,true表示异步请求(false表示同步请求,但是Ajax都是用异步)

4.发送异步请求实现与服务端的通讯

//4.发送请求
xhr.send();

send()方法发送请求,加入请求类型为GET,send方法中不传数据

以上就是Ajax基本使用的四个步骤,之后就是可以对于这个步骤进行一些简化和更高阶的使用.

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皮卡皮卡皮 皮卡皮卡皮
4年前
ajax
ajax定义:异步的JavaScript和XML是一种综合技术:运用了XMLHTTPRequest(xhr)和服务器交换数据,通过JavaScript局部渲染页面,从而实现异步的局部更新同步与异步同步代码按顺序执行,会阻塞代码执行(alert)异步不会阻塞代码XMLHTTPRequestxhrjsvarxhrnew
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Stella981 Stella981
3年前
AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)
1、什么是AjaxAjax是异步Javascript和XML(AsynchronousJavaScriptandXML)的英文缩写。"Ajax"这个名词的发明人是JesseJamesGarrett,而大力推广并且使Ajax技术炙手可热的是Google。Ajax的核心理念在于使用XMLHttpRequest对象发送异步请求。
Stella981 Stella981
3年前
AJAX与Django
AJAX什么是AJAX?AJAX不是JavaScript的规范,它的缩写:AsynchronousJavaScriptandXML,意思就是用JavaScript执行异步网络请求。提交任务之后,不原地等待,直接执行下一行代码,任务的返回通过回调机制。局部刷新,不整体刷新,而是界面莫个地方局部刷新AJAX原理
Stella981 Stella981
3年前
Django框架 之 Ajax
Django框架之Ajax浏览目录AJAX准备知识AJAX与XML的比较AJAX简介jQuery实现的ajaxAJAX参数AJAX请求如何设置csrf\_token序列化
Easter79 Easter79
3年前
SpringBoot2.x服务器端主动推送技术
一.服务端推送常用技术介绍  服务端主流推送技术:websocket、SSE等  1.客户端轮询:ajax定时拉取后台数据    js  setInterval定时函数  ajax异步加载 定时向服务器发送请求    服务器压力会较大  2.服务端主动推送:websocket《推荐使用》    全双工即双向通讯,本质上是一个
Stella981 Stella981
3年前
Django的日常
\toc\Django的日常AJAXAJAX简介首先AJAX是一种无需重新加载整个网页的前提下,能够更新部分网页的技术,他并不是一种新的编程语言,而是一种使用现有标准的新方法,是基于原生JavaScript开发的,他可以用于创建快速动态网页.AJAX最大的特点就是局部刷新以及异步提交,局部刷新
Stella981 Stella981
3年前
Ajax快速入门
最近需要使用ajax,json传数据,快速学习了下ajax,把基本的东西拿出来分享一下,打算以问题的形式来进行文章的编写~go!(一)什么是Ajax?Ajax是一种无需加载整个网页,快速刷新局部网页的技术。Ajax不是新的编程语言,而是一些老技术的融合。(二)Ajax用到了什么技术?异步数据获取技术:使用XMLHttpReques
Stella981 Stella981
3年前
Ajax异步请求
Ajax即"AsynchronousJavascriptAndXML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax异步JavaScript和XML(标准通用标记语言的子集)。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况
Stella981 Stella981
3年前
SpringBoot2.x服务器端主动推送技术
一.服务端推送常用技术介绍  服务端主流推送技术:websocket、SSE等  1.客户端轮询:ajax定时拉取后台数据    js  setInterval定时函数  ajax异步加载 定时向服务器发送请求    服务器压力会较大  2.服务端主动推送:websocket《推荐使用》    全双工即双向通讯,本质上是一个
代码逐风
代码逐风
Lv1
今为羌笛出塞声,使我三军泪如雨。
文章
4
粉丝
0
获赞
0