一,json
1.1 概念
json:javascript object notation,js对象表示法
作用:用于存储和交换文本信息
特点:
- 速度快
- 内存占用小
- 易于解析
1.2 基本语法
json 数据使用键值对进行存储
键:是字符串,用单(双)引号括起来
值:
- 数值,例如:3、-3.6
- 字符串,例如:“abc”、“张三”
- 布尔值
- json数组
- json对象
- null
{
"name": "张三",
"age": 80,
"sex": false,
"score": null,
"cars": ["宝马", "法拉利", "奔驰"],
"children": [{
"name": "李逵",
"age": 20,
"sex": "男"
},
{
"name": "张飞",
"age": 21,
"sex": "女"
},
{
"name": "刘备",
"age": 20,
"sex": "女"
}
]
}
json 数据的获取方式:
- json对象.键
- json对象[“键”]
- json数组[索引]
json的循环方式:除了使用普通for循环,还可以使用如下方式:
for(var t in 数据源)
注:使用以上循环遍历json时,如果遍历的数据源是json数组,那么t是下标;如果遍历的数据源是json对象,那么t是对象中的键(获取的键是字符串类型的)
1.3 json数据与java对象的转换
步骤:
- 准备工作,引入依赖
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
</dependencies>
-
创建jackson的核心对象ObjectMapper ObjectMapper mapper = new ObjectMapper();
-
执行转换
-
java对象转换成json数据 mapper.writeValueAsString(Object o);
mapper.writeValue(File f,Object o);
mapper.writeValue(OutputStream os,Object o);
mapper.writeValue(Writer w,Object o);
-
json数据转换成java对象 mapper.readValue(String json,Class c);
mapper.readValue(File f,Class c);
mapper.readValue(OutputStream os,Class c);
mapper.readValue(Writer w,Class c);
二,jQuery
2.1 概念
jQuery是一个前端框架,用于简化js的开发
jQuery的设计宗旨“write less do more”,提倡用更少的代码写出更多的功能。它封装了js常用的功能,优化了html文档的操作、事件处理、动画和AJAX交互。
jQuery本质上就是一个 js 文件。
2.2 jQuery的使用
- 下载,jQuery文件,https://www.jq22.com/jquery-info122
注:任何一个版本的jQuery文件都有带有min和不带min的版本
jquery-xxx.js:开发版,给程序员看的,其中有良好的代码缩进和注释,体积更大
jquery-xxx.min.js:生产版,开发中使用的,没有缩进和注释,体积小
- 在页面中引入jQuery
<script type="text/javascript" src="js/jquery-3.3.1.min.js">
</script>
2.3 js 对象与 jQuery 对象的转换
js -> jQuery
$(js对象)
jQuery -> js
方式1:
jQuery对象[索引]
方式2:
jQuery对象.get(索引)
注:jQuery对象不能调用js的属性和方法;js对象不能调用jQuery的属性和方法
2.4 jQuery的基本操作
-
入口函数
$(document).ready(function(){
})
$().ready(function(){
})
$(function(){
})
-
样式设置 jQuery对象.css("样式名","样式值");
$btn.css("background","red").css("color","yellow").css("border","2px solid black");
$btn.css({"background":"blue","color":"red","font-weight":"bold"});
-
事件绑定 jQuery对象.事件1(function(){
}).事件2(function(){
})
2.5 选择器
2.5.1 基本选择器
-
元素选择器 $("标签名")
-
id选择器 $("#id值")
-
类选择器 $(".class值")
-
并集选择器 $("选择器1,选择器2,...")
-
通配符选择器 $("*")
2.5.2 层级选择器
-
子代选择器 $("选择器1 > 选择器2")
-
后代选择器 $("选择器1 选择器2")
2.5.3 属性选择器
形式1:
$("选择器[属性名]")
形式2:
$("选择器[属性名='属性值']")
形式3:
$("选择器[属性名='属性值'][属性名='属性值']...")
2.5.4 过滤选择器
-
首元素选择器 $("选择器:first")
-
尾元素选择器 $("选择器:last")
-
非元素选择器 $("选择器:not(选择器)")
-
奇数选择器 $("选择器:odd")
-
偶数选择器 $("选择器:even")
-
等于索引选择器 $("选择器:eq(index)")
-
大于索引选择器 $("选择器:gt(index)")
-
小于索引选择器 $("选择器:lt(index)")
2.6 DOM操作
2.6.1 内容的操作
- text():获取/设置元素标签体内的内容
- html():获取/设置元素标签体内的html结构
- val():获取/设置value的属性值
注:
- 方法中不写参数,表示获取
- 方法中写参数,表示设置
2.6.2 属性的操作
- 通用属性操作
- attr():获取/设置属性
- removeAttr():移除属性
- prop():获取/设置属性
- removeProp():移除属性
注:
- attr()方法可以对元素的固有属性进行操作,也可以对自定义的属性进行操作;
- prop()方法只能对元素的固有属性进行操作
- class属性操作
- addClass():添加class属性值
- removeClass():移除class属性
- toggleClass():切换class属性
2.6.3 标签的操作
- a.append(b):将b作为a的最后一个子元素
- a.prepend(b):将b作为a的第一个子元素
- a.appendTo(b):将a作为b的最后一个子元素
- a.prependTo(b):将a作为b的第一个子元素
- a.insertAfter(b):将a移动到b之后
- a.insertBefore(b):将a移动到b之前
- a.after(b):将b移动到a之后
- a.before(b):将b移动到a之前
-
创建元素节点(标签): $(标签名)
例如:创建一个超链接
$("<a href='http://www.baidu.com'>百度</a>")
-
a.remove():移除a元素 -
a.empty():清空a元素标签体中的内容,保留自身
2.6.4 事件绑定
$(选择器).事件(function(){
})
举例:
$("#btn").click(function(){
})
$(选择器).on("事件",function(){
})
举例:
$("#btn").on("mouseover",function(){
})
$(选择器).off("事件")
举例:
$("#btn").off("mouseover")
2.6.5 遍历
$.each(容器,function(变量名){
})
jQuery对象.each(function(变量名){
})
注:
- 以上两种方法的匿名函数中必须定义形参,该形参是每一个元素下标
- jQuery中不能使用break和continue,要使用
return false 代替break、return true 代替continue
三,AJAX
3.1 概念
Asynchronous JavaScript And Xml,异步的js和xml
同步:客户端向服务器发送请求后,必须等待服务器的响应,只有在服务器响应后,客户端才能执行其他操作
异步:客户端向服务器发送请求后,客户端不需要等待服务器的响应,就可以继续操作
作用:异步请求,局部刷新
AJAX是一种无需加载整个页面,就可以更新页面中部分内容的技术,提高了用户体验
3.2 使用原生js的方式完成ajax
-
创建执行异步请求的核心对象XMLHttpRequest var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
-
建立连接 xmlhttp.open(参数1,参数2,参数3);
参数:
- 提交方式:get、post
- 请求的地址
- 是否使用异步:true(使用异步)、false(不使用异步)
-
发送请求 xmlhttp.send();
注:
-
get请求,提交的数据必须拼接在请求的地址之后,并且send()方法的参数必须为空 -
post请求,提交的数据要写在send()方法的参数中,并且在发送请求前,必须先添加如下语句:` xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-
接收服务器响应回来的数据 xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
}
}
通过xmlhttp.responseText 可以获取服务器响应回来的数据
3.3 使用jQuery完成ajax
-
$.get(参数1,参数2,参数3,参数4):以get提交方式实现ajax
-
$.post(参数1,参数2,参数3,参数4):以post提交方式实现ajax
参数:
- 请求的地址
- 提交的数据(json)
- 服务器响应后执行的功能,用于接收服务器响应的数据,函数的参数就是接收到的响应的数据
- 接收到的服务器响应数据的类型,取值:json、text
-
$.ajax({
url:请求的地址,
data:提交的数据(json),
success:function(d){
},
dataType:接收数据的类型
type:提交方式,get/post
})
|