【AJAX】一篇文章弄懂并学会AJAX

news/2024/7/19 14:37:47 标签: ajax, js

 

概念

  1. ASynchronous JavaScript And XML:异步的JavaScript和XML
  2. 同步和异步:客户端服务器端相互通信的基础上。同步——客户端在等待服务器端的响期间不能做任何其他操作;异步——服务器处理请求的过程中,客户端可以进行其他的操作。
  3. 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面
  4. Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

 
 

优缺点

优点:

  1. 局部刷新异步通信,效率更高,用户体验上升
  2. 按需取数据,减少了冗余请求,减轻了服务器负担
  3. 标准化,广泛使用且不需要插件

缺点:

  1. 局部刷新,因此后退按钮失效
  2. 依赖JavaScript和Ajax引擎,需要考虑兼容性问题
  3. 安全问题,Ajax会暴露出与服务器交互的更多细节

 
 

原生JS实现

function fun() {
    //1.创建核心对象
    var xmlhttp = new XMLHttpRequest();

    //2.建立连接
    /* 参数:请求方式(GET/POST),URL,异步/同步(true/false) */
    xmlhttp.open("GET", "AjaxServlet?username=Alice", true);

    //3.发送请求
    /* 参数:GET方式的话请求参数已经拼接在URL中,这里空参;POST方式的话请求参数写在send()中 */
    xmlhttp.send();

    //4.接受并处理来自服务器的响应
    /* 逻辑:当xmlhttp就绪状态改变时触发事件:如果就绪状态码为4且响应状态码为200,就可以获取服务器的响应结果了 */
    xmlhttp.onreadystatechange = function () {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            var responseText = xmlhttp.responseText;
            alert(responseText);
        }
    }
}

 
 

JQuery实现

-------------------------------------------- $.ajax()实现 -------------------------------------------------
function fun() {
    //使用$.ajax()发送异步请求
    $.ajax({
        url: "AjaxServlet",                       // 请求路径
        type: "POST",                             // 请求方式
        // data: "username=Alice&age=12",         // 请求参数
        data: {"username": "Alice", "age": 12},   // 请求参数(推荐写法)
        success: function (data) {},              // 回调函数(data是用来接收response响应数据的)
        error: function () {},                    // 出错时执行的回调函数
        dataType: "json",                         // 设置接收到的response响应数据的格式
    });
}


---------------------------------------- $.get()/$.post()实现 ---------------------------------------------
function fun() {
	$.get(url, [data], [callback], [type])
	$.post(url, [data], [callback], [type])
	// 参数:$.get(请求路径, [请求参数], [回调函数], [响应结果的类型])
}

 

 

 

 

 
 
 
 

 
 

 
 
结束之前,再读三遍:局部刷新,异步通信,按需取数据!!
 

End ♬

by a Lolicon ✪


http://www.niftyadmin.cn/n/1330442.html

相关文章

【Filter过滤器案例】登录验证+敏感词过滤

登录验证 >>> 思路: >>> 先假设拦截所有资源(Servlet, jsp...均不让访问),判断资源是否与登录有关: >>> 1.与登录相关 ---- 直接放行 >>> 2.与登录无关 ---- 判断是否已经登录(已登录--放行; 未登录--跳转到登录界面)WebFi…

HDU 2000 ASCII码排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2000 roblem Description 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output 对…

【JSON】一篇文章学会Json——数据传输的最佳选择

概述 JavaScript Object Notation,JavaScript对象表示法JSON是存储和交换信息的语法。类似XML。JSON比XML更小、更快、更易解析。因此更适合数据传输 理解 Json是且仅是一个表示法。它可以是对象,可以是字符串。在数据传输时,我们使用的是J…

HDU 2001 两点间距离

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2001 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1…

【Filter】过滤器知识点汇总

Filter过滤器 概念:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能(响应同样又会被拦截) 用途:登录验证、统一编码处理、敏感词过滤等 Filter快速入门 >>> 配置拦截路径有…

HUD 2002 球体积

Problem Description 根据输入的半径值,计算球的体积。 Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。 Output 输出对应的球的体积,对于每组输入数据,输出一行,计算结…

即时判断用户名是否已存在——AJAX局部更新+JSON数据传输

效果 思路 鼠标失焦时,触发事件,请求Servlet判断用户名是否存在并返回结果发送的请求是Ajax请求,从而实现局部更新根据响应做出的动作写在Ajax请求的回调函数function(data){}里,data为响应的数据数据传输采用Json传输&#xff0…

HDU 2003 求绝对值

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2003 Problem Description 求实数的绝对值。 Input 输入数据有多组,每组占一行,每行包含一个实数。 Output 对于每组输入数据,输出它的绝对值,要求每组数据…