Js原生Ajax和Jquery的Ajax

来源:互联网 发布:过山车大亨 mac 中文 编辑:程序博客网 时间:2024/05/18 03:46


1.什么是同步,什么是异步

同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态

异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死

 

2.Ajax的运行原

3.页面发起请求,会将请求发送给浏览器内核中的Ajax理

引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能。


我们先来看一下Js原生Ajax,因为这是底层实现,当学完了Js原生Ajax后再来看Jquery的Ajax就是So easy了!

代码走起:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>  <script type="text/javascript" src="js/jquery-1.8.3.js"></script>  <script>$(function() {  $("#one").click(function() {  /* 1)创建Ajax引擎对象  2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)  3)绑定提交地址  4)发送请求  5)接受响应数据 */  var xmlhttp=new XMLHttpRequest();  xmlhttp.onreadystatechange=function(){  if (xmlhttp.readyState==4 && xmlhttp.status==200)    {    document.getElementById("myDiv1").innerHTML=xmlhttp.responseText;    }  }  xmlhttp.open("GET","/ajax/AServlet",true);  xmlhttp.send();  })})</script>  <body>   <input type="submit" value="一步提交" id="one"/><div id="myDiv1"></div> <br/>   <input type="submit" value="同步提交" id="tow"/><div id="myDiv2"></div><br/>  </body></html>
简单的ajax入门就算是完事了,但是我们发送的数据却是格式不良好的,为此我们使用json来保证我们传送的数据的格式良好。

j

一、Json数据格式(重要)

 

json是一种与语言无关的数据交换的格式,作用:

使用ajax进行前后台数据交换

移动端与服务端的数据交换

 

1.Json的格式与解析

json有两种格式:

1)对象格式:{"key1":obj,"key2":obj,"key3":obj...}

2)数组/集合格式:[obj,obj,obj...]

 

例如:user对象 用json数据格式表示

{"username":"zhangsan","age":28,"password":"123","addr":"北京"}

 

List<Product> 用json数据格式表示

[{"pid":"10","pname":"小米4C"},{},{}]

 

注意:对象格式和数组格式可以互相嵌套

 

注意:json的key是字符串  jaon的value是Object

 

json的解析:

json是js的原生内容,也就意味着js可以直接取出json对象中的数据

 

 

2.Json的转换插件

 

java的对象或集合转成json形式字符串

 

json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。

常用的json转换工具有如下几种:

1)jsonlib

2)Gson:google

3)fastjson:阿里巴巴



0 0