AJAX

1. 概念: ASynchronous JavaScript And XML    异步的JavaScript 和 XML


    1. 异步和同步:客户端和服务器端相互通信的基础上
        * 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
        * 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。

 Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 
        通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
        传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

 提升用户的体验



实现方式:
    1. 原生的JS实现方式(了解)

01-原生js实现ajax.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//定义方法function  fun() {//发送异步请求//1.创建核心对象var xmlhttp;if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}else{// code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}//2. 建立连接/*参数:1. 请求方式:GET、POST* get方式,请求参数在URL后边拼接。send方法为空参* post方式,请求参数在send方法中定义2. 请求的URL:3. 同步或异步请求:true(异步)或 false(同步)*/xmlhttp.open("GET","ajaxServlet?username=tom",true);//3.发送请求xmlhttp.send();//4.接受并处理来自服务器的响应结果//获取方式 :xmlhttp.responseText//什么时候获取?当服务器响应成功后再获取//当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。xmlhttp.onreadystatechange=function(){//判断readyState就绪状态是否为4,判断status响应状态码是否为200if (xmlhttp.readyState==4 && xmlhttp.status==200){//获取服务器的响应结果var responseText = xmlhttp.responseText;alert(responseText);}}}</script></head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

AjaxServlet.java

package cn.itcast.web.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取请求参数String username = request.getParameter("username");//处理业务逻辑。耗时try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}//2.打印usernameSystem.out.println(username);//3.响应response.getWriter().write("hello : " + username);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}



JQeury实现方式

02-JQuery实现方式1_ajax.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery-3.3.1.min.js"></script><script>//定义方法function  fun() {//使用$.ajax()发送异步请求$.ajax({url:"ajaxServlet" , // 请求路径type:"POST" , //请求方式//data: "username=jack&age=23",//请求参数data:{"username":"jack","age":23},success:function (data) {alert(data);},//响应成功后的回调函数error:function () {alert("出错啦...")},//表示如果请求响应出现错误,会执行的回调函数dataType:"text"//设置接受到的响应数据的格式});}</script></head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

AjaxServlet.java

​
package cn.itcast.web.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取请求参数String username = request.getParameter("username");//处理业务逻辑。耗时try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}//2.打印usernameSystem.out.println(username);//3.响应response.getWriter().write("hello hhhh : " + username);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}​

2. $.get():发送get请求
            * 语法:$.get(url, [data], [callback], [type])
                * 参数:
                    * url:请求路径
                    * data:请求参数
                    * callback:回调函数
                    * type:响应结果的类型

        3. $.post():发送post请求
            * 语法:$.post(url, [data], [callback], [type])
                * 参数:
                    * url:请求路径
                    * data:请求参数
                    * callback:回调函数
                    * type:响应结果的类型

03-JQuery实现方式2_get.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery-3.3.1.min.js"></script><script>//定义方法function  fun() {$.get("ajaxServlet",{username:"rose"},function (data) {alert(data);},"text");}</script></head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

04-JQuery实现方式3_post.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery-3.3.1.min.js"></script><script>//定义方法function  fun() {$.post("ajaxServlet",{username:"rose"},function (data) {alert(data);},"text");}</script></head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

AJAX ||JQeury实现方式||原生的JS实现方式(了解)相关推荐

  1. 原声ajax发送post请求,原生JS实现ajax 发送post请求

    1. [代码]原生JS实现ajax 发送post请求 var oStr = ''; var postData = {}; var oAjax = null; //post提交的数据 postData ...

  2. Ajax和JSON-学习笔记02【JQuery方式实现Ajax】

    Java后端 学习路线 笔记汇总表[黑马程序员] Ajax和JSON-学习笔记01[原生JS方式实现Ajax] Ajax和JSON-学习笔记02[JQuery方式实现Ajax] Ajax和JSON-学 ...

  3. Ajax的异步同步原理以及js几种方式的实现

    Ajax的异步同步原理以及js几种方式的实现的个人详细解析 Ajax简介 Ajax的全称是:Asynchronous JavaScript And XML,指的是异步 JavaScript 及 XML ...

  4. Ajax入门笔记(原生Ajax、jQuery、axios、fetch、跨域SONP、CORS)

    文章目录 一.基础知识 1.1AJAX简介 1.2 AJAX的特点 1.2.1 AJAX 的优点 1.2.2 AJAX 的缺点 1.3 XML简介 1.4 HTTP简介 1.4.1 请求报文 1.4. ...

  5. Node.js 系列:构建原生 Node.js 应用

    原生 Node.js 应用 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效 Nod ...

  6. html5支持原生js,HTML5怎么学原生的js?让你对前端有了新的认识

    原标题:HTML5怎么学原生的js?让你对前端有了新的认识 已经学习了HTML5两个月,第一个月主要学习HTML和CSS,第二个月学完了原生的js,学完原生的js后对前端有了新的认识,了解了前端并不是 ...

  7. ajax登录验证的原理,ajax用户登录验证-get和post提交方式,与工作原理—2018-8-15...

    ajax用户登录验证: 实例 html> Ajax实战:表单验证 用户登录 邮箱: 密码: 提交 let btn = document.getElementsByTagName('button' ...

  8. html用ajax做三级联动,怎样使用JS+AJAX做出三级联动

    这次给大家带来怎样使用JS+AJAX做出三级联动,使用JS+AJAX做出三级联动的注意事项有哪些,下面就是实战案例,一起来看一下. js 三级联动的实现代码如下所示: js原生ajax -请选择 省/ ...

  9. JavaScript/Ajax/JQuery知识点(BOM/DOM/ScriptEngine/JS引擎),JSCore

    捋顺JavaScript底层知识,重点讲解如原型.作用域.执行上下文.变量对象.this.闭包.按值传递.call.apply.bind.new.继承等难点概念??   JS中的继承?JS的原型模式, ...

最新文章

  1. linux终端vi退出命令,如何从命令行关闭vim?
  2. QT Desinger设计窗体应用程序框架
  3. 如何在CentOS 7中禁止IPv6
  4. Java黑皮书课后题第8章:*8.32(几何:三角形面积)编写一个方法,使用下面的方法头,返回一个三角形的面积。编写一个程序,提示用户输入三角形的三个点,然后显示三角形的面积
  5. 叶琰:AI压缩技术在追上传统编码技术
  6. 从(知乎大量的数据上保持毫秒级的查询响应时间)上看什么是 TiDB?
  7. command exec make executable file not found in %PATH%
  8. 二度云抢先成为首批中国工信部(.vip/.xyz/.club)域名注册管理机构
  9. arcgis交通可达性分析步骤_【规划广角】街道慢行品质的多维度评价与导控策略——基于多源城市数据的整合分析...
  10. hdu4814 黄金进制转换
  11. Excel按某一列排序
  12. P1020 导弹拦截 dp 树状数组维护最长升序列
  13. java 游戏编程 (一)
  14. Java实现八大排序算法【九千字超详解】
  15. 上海校区—给班级女神的Surprise!
  16. 触摸式计算机屏幕,触控屏笔记本好不好 触摸屏笔记本优缺点分析【详细介绍】...
  17. vnc 键盘慢_在基于Web的VNC应用程序中支持多种键盘布局
  18. 快速破解基于linux内核的开源路由器后台管理登录密码
  19. 架构漫谈专栏系列文章
  20. 安全左中右·2022 XDR 网络安全运营新理念峰会圆满落幕

热门文章

  1. 2018新版正方教务 ---爬虫--- JAVA源码--课表--平时分----成绩-----排名----考试安排...
  2. python-常用函数模块学习-subprocess
  3. Java 调用存储过程 返回结果集
  4. 关于“心脏出血”漏洞(heartbleed)的理解
  5. Training—Capturing Photos
  6. Android 如何快速写满存储空间
  7. 什么是menuconfig和menuconfig的使用方法和技巧
  8. android中SELINUX规则分析和语法简介
  9. Android6.0以上的权限问题
  10. 霍金家人声明:他的成功将继续存在 我们永远怀念他