HTML DOM
设置时间
setInterval() | 按照指定的周期(以毫秒计)来调用函数或计算表达式。 |
---|---|
setTimeout() | 在指定的毫秒数后调用函数或计算表达式。 |
AJAX
详解onreadystatechange
onreadystatechange属性是一个方法,当Ajax引擎的状态发生改变时都会执行onreadystatechange属性对应的方法.
ajax引擎的状态属性readyState(0 1 2 3 4):
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
当前ajax引擎的状态属性readyState为4时,说明服务器的响应已经发送给ajax请求了. 但是响应的状态码为200时说明响应的内容是正确的,这时才会根据相应内容对当前页面的html处理.
因为HTTP协议中规定返回当前请求的http响应状态码.
200 ok 304 缓存; 404 not found; 403 没有权限 501 服务器级别错误.
ajax引擎的响应状态码属性status(200 304 404 403 501).
根据上面所说才有以下代码:
xmlHttpRequest.onreadystatechange=function(){
//当请求和响应同时完成,从Ajax引擎中获取响应内容,然后通过Javascript对网页进行操作
if (xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){
//根据相应内容对网页进行操作的代码通常写在这里
// xmlHttpRequest. responseText
// xmlHttpRequest. responseXML
}
}
JSON.parse
将json的字符串转换成 对象
接口地址:http://139.9.177.51:3333/api/testGet
方式:get
参数:name(string)
返回:
{
"code":200,
"msg":"没有接收到传过来的参数name呢,再试试",
"data":""
}
-------------------------------------------------------------------------------
接口地址:http://139.9.177.51:3333/api/testPost
方式:post
参数:name(string)
返回:
{
"code":200,
"msg":"没有接收到传过来的参数name呢,再试试",
"data":""
}
-------------------------------------------------------------------------------
接口地址:http://139.9.177.51:3333/api/emailExist
接口说明:邮箱是否存在
方式:post
参数:email(string)
返回:
{
"code":200, //200表示成功,500表示失败
"msg":"该邮箱可以使用",
"data":""
}
已存在的邮箱:["zhangsan@qq.com", "lisi@qq.com", "wangwu@qq.com", "123@qq.com", "123456@qq.com"]
-------------------------------------------------------------------------------
接口地址:http://139.9.177.51:3333/api/reg
接口说明:注册
方式:post
参数: (string)
返回:
{
"code":200, //200表示成功,500表示失败
"msg":"",
"data":""
}
GET
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/*
发送get方式的请求
*/
// 1. 创建一个ajax对象
var xhr = new XMLHttpRequest()
// 2. 配置请求的方式 和 请求的地址
// xhr.open('get', './serve/test.json?name=zs&email=zs@qq.com')
// xhr.open('get', 'http://139.9.177.51:3333/api/testGet')
xhr.open('get', 'http://139.9.177.51:3333/api/testGet?name=joe')
// 3. 监听ajax对象的准备状态变化
xhr.onreadystatechange = function () {
console.log('ajax的状态变化了...')
// console.log(xhr.readyState)
// 如果ajax准备状态等于4 且 http的状态码等于200 这个时候去接收数据 才是最完整的
if (xhr.readyState === 4 && xhr.status === 200) {
var data = xhr.responseText
console.log(data) // 接受服务器响应的数据
}
}
// 4. 发送请求
xhr.send()
</script>
</body>
</html>
POST
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1. 创建ajax对象
var xhr = new XMLHttpRequest()
// 2. 配置请求和方式地址
xhr.open('post', 'http://139.9.177.51:3333/api/testPost')
// 3. 监听状态改变
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var data = JSON.parse(xhr.responseText)
console.log(data)
console.log(data.code)
console.log(data.data)
console.log(data.msg)
}
}
// 4. 设置请求头
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
// 5. 发送
xhr.send('name=李寻欢')
</script>
</body>
</html>
Jquery发送AJAX的三种方式
<script src="./js/jquery.js"></script>
<script>
// get 请求
$.get('http://139.9.177.51:3333/api/testGet?name=小貂蝉', function (data) {
console.log(data)
})
// post 请求
$.post('http://139.9.177.51:3333/api/testPost', { name: "李寻欢" }, function (data) {
console.log(data)
})
// 万能请求
$.ajax({
type: 'post',
url: 'http://139.9.177.51:3333/api/testPost',
data: {
name: '小貂蝉'
},
success: function (data) {
console.log(data)
}
})
</script>
字符串操作
字符串格式化打印
var a = "Ammy";
console.log("hello ", a);
// hello Ammy
console.log("hello " + a);
// hello Ammy
数组操作.splice 参考
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
//Banana,Orange,Lemon,Kiwi,Mango
语法: array.splice(index, howmany, item1, ….., itemX)
参数 | 描述 |
---|---|
index | 必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。 |
howmany | 可选。要删除的项目数。如果设置为 0,则不会删除任何项目。 |
item1, …, itemX | 可选。要添加到数组中的新项目。 |
BootStrap
视口
- 可以用来显示内容的窗口大小,如果不设置,默认都有一个值,大部分都是 980
- 标准的视口配置:
```javascript
width=device-width 视口宽度等于设备宽度
initial-scale=1 初始缩放比例:1 不缩放
minimum-scale=1 最小缩放: 1
maximum-scale=1 最大缩放: 1
user-scalable=no 用户缩放: 不允许
viewport-fit=cover 兼容iphoneX 刘海屏
- 设备像素比: window.devicePixelRatio
<a name="WulgZ"></a>
### 媒体查询-设备断点
- 简单的说: 可以使用媒体查询判断当前设备的宽度, 根据这个宽度,写适合它的布局。
```javascript
// 屏幕的最小宽度1082px
@media screen and (min-width: 1082px) {
# 这里是写css的 写在这里的css 只有在 大于1082px的屏幕下有效 【大屏有效】
}
// 屏幕的宽度在 540px 到 1082px之间
@media screen and (min-width: 540px) and (max-width: 1082px) {
# 这里的样式 中屏有效
}
// 屏幕的宽度小于 540px
@media screen and (max-width: 540px ) {
# 这里的样式 小屏有效
}
作用: 判断各个机型
/*iPhone5和iPhone SE*/
@media only screen
and (device-width : 320px)
and (device-height : 568px)
and (-webkit-device-pixel-ratio : 2) {
/*code*/
}
/* iPhone6/7/8 */
@media only screen
and (device-width : 375px)
and (device-height : 667px)
and (-webkit-device-pixel-ratio : 2) {
/*code*/
}
/* iPhone6/7/8 Plus*/
@media only screen
and (device-width : 414px)
and (device-height : 736px)
and (-webkit-device-pixel-ratio : 3) {
/*code*/
}
/* iPhoneX*/
@media only screen
and (device-width : 375px)
and (device-height : 812px)
and (-webkit-device-pixel-ratio : 3) {
/*code*/
}
媒体的类型有两种
@media screen { /* 屏幕样式 */}
@media print{ /* 打印样式 */}