Ajax
同步请求 :全局刷新的方式 -> synchronous请求 客户端发一个请求,服务器响应之后你客户端才能继续后续操作,请求二响应完之后才能发送后续的请求,依次类推
有点:服务器负载较小,但是由于服务器相应的是整个页面资源,容易造成资源重复加载浪费,服务器相应的数据没有进行对应的选择刷新 -> 局部刷新
异步请求:asynchronous你只要发,不管服务器有没有给你响应,你依然可以继续第二次请求的发送,这是一种异步的方式 调用回调函数把响应返回给你
客户端 ->异步引擎对象xmlHttpRequets(队列结构,有个口进,有个口出,队列里面存下请求,再一个一个把请求发给服务器) -> 服务器 数据传输的载体,现在用的是xml数据格式的数据。
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML"。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在基本都是json格式)。
特点:
- 与服务器异步交互
- 浏览器页面局部刷新
- 排队导致的服务器压力过大也是其中的一个特点
java 对象 -> json xml三个之间的转换
Ajax的实现
1.原生版本
2.第三方的原生的ajax封装:jquery axios
基于jquery对ajax的实现
1.回调函数的概念,不是手动调用的函数,写事件函数时,其实括号内部写的就是回调函数
。
。
。
。
。
。
。
。
axios.click(function (){})
加上Requetsbody表示他是一个数据了
post请求完毕
现在->get 支持url传值 也支持内部自己写data传值
jquery提供的对ajax再次封装的简写!
$("btn").click(fcuntion (){
$.get("/test3/test1.do?name=lisi&age=23),function(rs){
$("content").text(rs)};})
只适用于get
根据bid去查询书籍
注入service 接收一个bid int id
其实调用了book.toString方法
数据想对象.属性调用出来 因为此时rs是一个字符串
rs是后台相应的一个字符串
下面这种方式才可以拿出
问题:把字符串转换成一个js对象var obj= {}
使用parseJson 把字符串{“k”:"v","k1":"v1'}转换成js对象
但是对于后台的拼接就会显得特别麻烦
后台是得到一个java对象,前端需要得到对象的属性,把字符串变成js对象{} 就是json
json就是带有格式的一个字符串 非常类似于js的对象格式
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
JSON是用字符串来表示Javascript对象,例如可以在Servlet中发送一个JSON格式的字符串给客户端Javascript,Javascript可以执行这个字符串,得到一个Javascript对象。
Json语法
数据在名称/值对中
数据由逗号分隔花括号{}
保存对象方括号[]
保存数组对象数组:[{},{},{}]
json的key必须使用双引号引起
对象数组:
json就是用于跨平台的数据传递
后端:java对象转换为json 有相应的jar包
前端:把字符串转换为js对象 Json.parse(rs) rs是一个字符串
json -> 字符串 json.Stringfy
java后台java对象与json的转换
1.使用第三方的json的jar包:jackson(spring默认) fastjson(阿里提供) jsonlib
Spring使用jackson
1.导入依赖
然后SpringMvc帮你做下面的事
2.配合@ReponseBody把java对象转换为json字符串
@RequestBody:把json字符串转换为java对象
但是没有postJson
更改首页的原生写法:
js动态加cur这个类选择器 但是我们的页面时全局刷新
ajax应用
实现表单 发起ajax请求 数据不是放到域当中了 使用js的DOM操作来动态操纵元素
调一下位置:
页面一加载 我们发起所谓的ajax请求
发起给请求
@("document").ready(function (){
})
@("searchBtn").get
一次性取出数据:
serializable 序列化表单
得到data的字符串格式
data通过url传了过去 就不管了
写controller
响应的是list.do 返回的是Page对象 需要一个ResponseBody
数据给到前台 然后前台渲染即可
java对象->map
js代码循环实现数据渲染
完成下一页
页面刷新执行一次
实现情况:追加不行
点击分类:实现页码复位
实现价格排序
shiyongshi'yong