文章目录

  • AJAX
    • 概念
    • 实现方式
      • 原生的JS实现方式(基本不用)
      • JQeury实现方式
        • $.ajax()
        • $.get():发送get请求
        • $.post():发送post请求
  • JSON
    • 概念
    • 语法
      • 基本规则
      • 获取数据
    • JSON数据和Java对象的相互转换

AJAX

概念

AJAX全称ASynchronous JavaScript And XML,含义为异步的JavaScript 和 XML。
异步和同步:客户端和服务器端相互通信的基础上

  • 同步:客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
  • 异步:客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。

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

实现方式

原生的JS实现方式(基本不用)

 //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);}
}

JQeury实现方式

$.ajax()

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

//使用$.ajax()发送异步请求
$.ajax({url:"ajaxServlet1111" , // 请求路径type:"POST" , //请求方式//data: "username=jack&age=23",//请求参数data:{"username":"jack","age":23},success:function (data) {alert(data);},//响应成功后的回调函数error:function () {alert("出错啦...")},//表示如果请求响应出现错误,会执行的回调函数dataType:"text"//设置接受到的响应数据的格式
});

$.get():发送get请求

语法:$.get(url, [data], [callback], [type])
参数:

  • url:请求路径
  • data:请求参数
  • callback:回调函数
  • type:响应结果的类型

$.post():发送post请求

语法:$.post(url, [data], [callback], [type])
参数:

  • url:请求路径
  • data:请求参数
  • callback:回调函数
  • type:响应结果的类型

JSON

概念

JSON全称JavaScript Object Notation,含义JavaScript对象表示法
Person p = new Person();
p.setName(“张三”);
p.setAge(23);
p.setGender(“男”);
var p = {“name”:“张三”,“age”:23,“gender”:“男”};

  • json现在多用于存储和交换文本信息的语法
  • 进行数据的传输
  • JSON 比 XML 更小、更快,更易解析。

语法

基本规则

  • 数据在名称/值对中:json数据是由键值对构成的

    • 键用引号(单双都行)引起来,也可以不使用引号
    • 值得取值类型:
      1. 数字(整数或浮点数)
      2. 字符串(在双引号中)
      3. 逻辑值(true 或 false)
      4. 数组(在方括号中) {“persons”:[{},{}]}
      5. 对象(在花括号中) {“address”:{“province”:“陕西”…}}
      6. null
  • 数据由逗号分隔:多个键值对由逗号分隔
  • 花括号保存对象:使用{}定义json 格式
  • 方括号保存数组:[]

获取数据

  1. json对象.键名
  2. json对象[“键名”]
  3. 数组对象[索引]
  4. 遍历
 //1.定义基本格式
var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},{"name": "李四", "age": 24, "gender": true},{"name": "王五", "age": 25, "gender": false}];//获取person对象中所有的键和值
//for in 循环
/* for(var key in person){//这样的方式获取不行。因为相当于  person."name"//alert(key + ":" + person.key);alert(key+":"+person[key]);
}*///获取ps中的所有值
for (var i = 0; i < ps.length; i++) {var p = ps[i];for(var key in p){alert(key+":"+p[key]);}
}

JSON数据和Java对象的相互转换

JSON解析器:
常见的解析器:Jsonlib,Gson,fastjson,jackson
现在一般都用fastjson,因为性能更高,具体操作细节可以查看我这篇文章:
Fastjon2他来了,性能显著提升,还能再战十年

AJAX和JSON详解相关推荐

  1. $.ajax的async参数,jquery的$.ajax async使用详解

    async在jquery ajax中是一个同步参数了,我们下面来给大家介绍在jquery ajax中使用async时碰到的一些问题与方法介绍,希望例子能给各位同学带来一些帮助哦. async默认是tr ...

  2. Ajax基本案例详解之load的实现

    Ajax的load实现: 看这篇之前建议大家去看看前面两篇文章: 1.Ajax基本案例详解之$.ajax的实现 2.Ajax基本案例详解之$.get的实现 现在写一下$.load()里面的主要内容: ...

  3. Ajax基本案例详解之$.getjson的实现

    Ajax的$.gethson实现: 看这篇之前建议大家去看看前面两篇文章: 1.Ajax基本案例详解之$.ajax的实现 2.Ajax基本案例详解之$.get的实现 现在写一下$.getjson里面的 ...

  4. Ajax基本案例详解之$.post的实现

    Ajax的post实现: 看这篇之前建议大家去看看前面两篇文章: 1.Ajax基本案例详解之$.ajax的实现 2.Ajax基本案例详解之$.get的实现 现在写一下$.post()里面的主要内容: ...

  5. Ajax基本案例详解之$.get的实现

    前面我已经写过一篇ajax的$.ajax的实现了,其中html,css,doindex.jsp里面已经详细列出来了,这篇主要写的是$.get()的实现,其中html,css,doindex.jsp都和 ...

  6. python自动解析json_Python语言解析JSON详解

    本文主要向大家介绍了Python语言解析JSON详解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. JSON 函数使用 JSON 函数需要导入 json 库:import jso ...

  7. C# - JSON详解

    C# - JSON详解 转载于:https://www.cnblogs.com/macT/p/10214396.html

  8. thinkphp ajax volist,thinkphp中的volist标签在ajax中操作详解

    在一个ThinkPHP的复杂页面(包含volist)中实现volist标签显示Jquery查询结果的返回.本文主要和大家介绍thinkphp 中的volist标签在ajax操作中的特殊性(推荐),需要 ...

  9. ajax常用案例,Ajax和$.ajax使用实例详解(推荐)

    实例一(Ajax请求基本创建格式): Ajax练习(GET,不考虑浏览器兼容性) function doRequest() { //不考虑浏览器兼容性问题 var xmlHttp = new XMLH ...

最新文章

  1. 10.07-Idea的使用
  2. Mesos各种存储处理方式
  3. SAP云平台CloudFoundry环境hdb build成功的日志分析
  4. kotlin键值对数组_Kotlin程序检查数组是否包含给定值
  5. olcd12864的u8g2库_U8G2 软件包单色1.3寸OLED屏驱动在 RT-Thread 移植问题
  6. 对刚iPad!华为最强Pad发布,独揽四项全球第一,3299元起!
  7. 【转】CSS(10)盒子模型
  8. c#:浅克隆和深克隆,序列化和反序列化
  9. Java之IO,BIO,NIO,AIO知多少?【请按正文网址阅读】
  10. Python解题 - CSDN周赛第9期
  11. MATLAB 2016a安装
  12. 博弈论基础知识与SG函数
  13. ENSP模拟器下载分享
  14. 【转载】PowerDomain简介
  15. Jmeter二次开发实现rsa加密
  16. 企业为提高团队协作,一般都会使用什么办公工具?
  17. 解锁中智集团30平方米数据中心备受追捧的密码
  18. 华硕飞行堡垒安装ubuntu一系列坑
  19. linux 保存文件名乱码怎么办,Linux 文件名编码转换 乱码 解决办法
  20. redis集群介绍与搭建

热门文章

  1. IOS疯狂基础之隐藏系统键盘
  2. matlab中创建一维数组变量的方法
  3. OpenCV C++人脸识别
  4. html div边框阴影
  5. 【react】什么是fiber?fiber解决了什么问题?从源码角度深入了解fiber运行机制与diff执行
  6. JAVA关于搜索附近功能开发探讨
  7. 为什么要 “打工人” ?
  8. lisp 图层字体式样替换_一键替换生成各类型3D字体图层样式PSD大全,设计师必备早点下班...
  9. iOS开发7:自动旋转与调整大小
  10. android:给图片打水印