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.responseTextconsole.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 Ammyconsole.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 screenand (device-width : 320px)and (device-height : 568px)and (-webkit-device-pixel-ratio : 2) {/*code*/}/* iPhone6/7/8 */@media only screenand (device-width : 375px)and (device-height : 667px)and (-webkit-device-pixel-ratio : 2) {/*code*/}/* iPhone6/7/8 Plus*/@media only screenand (device-width : 414px)and (device-height : 736px)and (-webkit-device-pixel-ratio : 3) {/*code*/}/* iPhoneX*/@media only screenand (device-width : 375px)and (device-height : 812px)and (-webkit-device-pixel-ratio : 3) {/*code*/}
媒体的类型有两种
@media screen { /* 屏幕样式 */}@media print{ /* 打印样式 */}
