Java Web-Ajax学习

概念

Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML)。

异步和同步:在客户端和服务器端相互通信的基础上来理解

这个结合计算机组成里面的同步和异步就好理解

同步方法:

异步方法:

同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。

异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。

————————————————

版权声明:本文为CSDN博主「半笙彷徨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wang704987562/article/details/79827609

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

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

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

来源: https://baike.baidu.com/item/ajax/8425

此外,如果是同步请求,那么与服务器交互时、服务器没有返回数据的时间内页面的其他元素是不能操作的(因为是页面全部更新),但是异步请求则可以。这对于提升用户体验很重要,因为有些服务器业务处理是很耗时间,如果使用同步方法的话用户在这段时间内只能等待。

实现方式

实现方式有两种:

原生JS实现

function fun() {

//发送异步请求

//1.创建核心对象

var xmlhttp;

if (window.XMLHttpRequest)//如果是高版本的浏览器

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else//如果是低版本的浏览器

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}



//2.建立连接

/*

参数:

1. 请求方式:GET\POST

如果是get方式,请求参数在url后拼接,send方法为空参

post方式,请求参数在send方法中定义,不需要在url中拼接参数

2.请求的url路径

3.判断同步或者异步请求,值为true是异步,值为false是同步

*/

xmlhttp.open("GET","AjaxServlet?username=tom",true);



//3.发送请求

xmlhttp.send();



//4.接受并处理来自服务器的响应结果:xmlhttp.responseText;

//但是要哦等到当服务器响应成功后再获取



//当xmlhttp对象的就绪状态改变时

xmlhttp.onreadystatechange=function()

{

//检查状态码

if (xmlhttp.readyState4 && xmlhttp.status200)

{

//获取响应结果

alert(xmlhttp.responseText);

}

}

}

JQuery的实现方式(对原生实现做了一个封装,使得异步交互变得更加简单)

$.ajax()

语法:$.ajax({键值对});

$.get()

$.post()

function fun() {
//1.使用$.ajax()方式发送异步请求
$.ajax({
url:"AjaxServlet",//请求的路径
type:"GET",//请求的方式
data:"username=jack&age=23",//携带的参数
/*data也可以这么写:
data:{"username":"jack","age":23)}
其实就是JSON的格式
*/
success:function (data) {
alert(data);
},//回调函数,也就是响应成功后自动执行的函数
error:function () {
alert("error happens!");
},//请求响应出现错误时执行的回调函数



//dataType:

// 设置接收到的响应数据的格式,取值有xml\html\json\jsonp\text

//如果不指定,JQuery会自动根据HTTP包MIME信息来智能地判断

});

//$.get()和$.post()是$.ajax()的进一步简化版

//$.get(url,[data],[callback],[type]),加[]的都是可选参数

//这些参数的含义和上面的一样

//$.post()和$.get()差不多

}

Java Web-Ajax学习的更多相关文章

  1. 【Java Web开发学习】跨域请求

    [Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...

  2. 【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    [Java Web开发学习]Spring MVC 使用HTTP信息转换器 转载:https://www.cnblogs.com/yangchongxing/p/10186429.html @Respo ...

  3. 【Java Web开发学习】Spring JPA

    [Java Web开发学习]Spring JPA 转载:https://www.cnblogs.com/yangchongxing/p/10082864.html 1.使用容器管理类型的JPA JND ...

  4. 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener

    [Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...

  5. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  6. 【Java Web开发学习】Spring MVC文件上传

    [Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...

  7. 【Java Web开发学习】Servlet、Filter、Listener

    [Java Web开发学习]Servlet 转发:https://www.cnblogs.com/yangchongxing/p/9274739.html 1.Servlet package cn.y ...

  8. 【Java Web开发学习】Spring MVC异常统一处理

    [Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...

  9. 【Java Web开发学习】Spring加载外部properties配置文件

    [Java Web开发学习]Spring加载外部properties配置文件 转载:https://www.cnblogs.com/yangchongxing/p/9136505.html 1.声明属 ...

  10. 【Java Web开发学习】Spring4整合thymeleaf视图解析

    [Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...

随机推荐

  1. zz SOLID (面向对象设计)

    SOLID (面向对象设计) 维基百科,自由的百科全书 跳到导航 跳到搜索 在程序设计领域, SOLID(单一功能.开闭原则.里氏替换.接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期[1] ...

  2. radioButon的使用

    界面: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=& ...

  3. 生成model笔记

    https://github.com/yscacaca/DeepSense/tree/master/android_test这个才是真正的部署代码,跑这个代码就好. 跑python sample_mo ...

  4. flutter 数据存储 SP和sqlite

    添加插件: shared_preferences: ^0.4.2 path_provider: ^1.2.0 sqflite: ^0.12.0 import 'dart:async'; import ...

  5. GWAS: 网页版的基因型填充(genotype imputation)

    在全基因组关联分析中,处理芯片数据时,必须走的一个流程就是基因型数据填充(imputation). 当然,如果你拿到的是全测序的数据,请忽略这一步. 下面直奔主题,怎么在网页版进行基因型填充. 1 进 ...

  6. delphi十六进制字符串hex转byte数组互相转换bmp图片

    procedure Hex2Png(str: string; out png: TPngObject); var stream: TMemoryStream; begin if not Assigne ...

  7. bootstrap-table和bootstrap-switch

    {% load staticfiles %} <!DOCTYPE html> <html lang="en"> <head> <meta ...

  8. Appium移动自动化测试-----(十)appium API 之上下文操作

    其实上下文的操作主要针对于混合应用.啥是混合应用,简单来说就是APP用里面嵌入网页.Android上的浏览器就属于混合应用. 1.获取当前上下文 方法: getContext() 获取当前所有的可用的 ...

  9. mysql大小写敏感配置

    mysql大小写敏感配置show global variables like '%lower_case%'; show global variables like '%lower_case%'; &l ...

  10. 数据恢复方法--linux ubuntu--ddrescue

    live cd:可以让Linux系统从光盘启动,用户可以方便的先对系统进行一次体验,觉得好用,再进行硬盘安装.ubuntu live cd版:就是可以直接光盘启动的ubuntu系统.Mr. Hou先让 ...