ajax相关

-------------------------------------------
ajax无跳转刷新

访问后台的几种方式
1.直接在地址栏输入url
2.a.href
3.location.href

API(Application programming interface)和API文档

XMLHttpRequest
.open()        设置请求方式和地址  请求方式, url
.onload(){}  请求成功的回调 
.send()

执行顺序send之后执行onload

get方式传值 
url地址?key=value&key=value

post方式传值 
new XMLHttpRequest()
.open()        设置请求方式和地址  请求方式, url
.setRequestHeader('Content-Type','application/x-www-form-urlencoded') 表单提交
//onload 是非标准的w3c的方法,火狐做的,现在大多数浏览器支持了
//标准的方法是.onreadystatechange()
.onload = function(){}  请求成功的回调 
.send(`${username}&${password}`)


-------------------------------------------
导入axios
axios get

语法1
axios.get('url?key1=value1&key2=value2')
.then(res => {})
.catch(err => {})

语法2
axios.get('url',{
params:{
num:8,
key1:value1,
key2:value2
}
})
.then(res => {})
.catch(err => {})

axios的基本配置
axios({
method:
url:
//get请求参数
//params:{}
//post请求参数
//data:{}
})
.then()
.catch()

链式编程 在方法中返回该对象

-------------------------------------------

拦截器
axios.interceptors.request.use(function(config){
return config
},
function(err){
return Promise.reject(err)
})

axios.interceptors.response.use(function(config){
return config
},
function(err){
return Promise.reject(err)
})

基地址
axios.defaults.baseURL
axios中url如果没有 写基地址 则用这个axios.default.baseURL
axios中url如果写了基地址 则用自己的


readystate
0 未open
1 已open
2 已send
3 下载数据中
4 数据下载完毕

XMLHttpRequest.onreadystatechange = function(){
if(xhr.readystate == 4)
console.log(xhr.response)
}

ajax Asynchronous Javascript And XML (异步JavaScript和XML)

xml就是一个保存数据的格式
现在基本不用,现在都用json,json更优秀.

XML数据里面包含很多双标签

json更优秀.(
1. 不用双标签,用键值对,所以体积更小
2.可以转成json对象,方便操作数据)

get 与 post区别
1.传参方式不同
get请求传递的参数是在url地址上拼接
post请求传递参数是在请求体中

2.传参的大小不同
get传参的大小 2-5M
post传参的大小 一般情况下没有限制

3.传参的速度不同
get相对post快一点
post会分块传

4.安全性不同
get传参的安全性不高
post相对于get安全性更高

5.获取数据使用get
提交数据使用post

POST             向服务器新增数据
GET             从服务器获取数据
DELETE             删除服务器上的数据
PUT             更新服务器上的数据 侧重于完整更新:例如更新用户的完整信息
PATCH             更新服务器上的数据 侧重于部分更新:例如值更新用户的手机号
-------------------------------------------
头像预览
input添加onchange事件
获取图片 this.files[0]
创建预览url URL.createObjectURL

自定义‘选择图片’按钮
使用label包裹一个img,点击img后label的for去触发‘选择图片’按钮,input设置display:none

接口带文件使用FormData
1.1 input较少
let fd = new FormData()
fd.append()

1.2 input较多
let fd = new FormData(document.querySelector('form'))

FormData
可以自动获取form表单中所有的input的值

防抖:单位事件内,频繁触发一个事件,以最后一次为主(防抖函数  一个需要频繁触发的函数,在规定时间内,只让最后一次生效,前面的不生效)
应用场景:输入框输入事件
流程:声明一个全局变量,记录计时器id
每一次交互的时候先清空原来的计时器,再重新生成一个计时器

节流:单位时间内,频繁的触发事件,单位事件内只触发一次
场景:解决高频事件(鼠标移动,滚动条滚动)
流程:节流阀


域名解析 由运营商提供DNS服务器(移动、电信、联通)将域名转为ip


url输入后 按下回车
1.DNS解析, 将域名解析成IP地址
2.TCP连接: TCP三次握手
3.发送HTTP请求
4.服务器处理请求并返回HTTP报文
5.浏览器解析渲染页面
6.断开连接: TCP四次挥手


深拷贝
1.先转为字符串 再转为对象
JSON.stringfy(obj)
JSON.parse(obj)
缺点:不可以拷贝null undefined Function等

2.递归


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值