1椭赋、HTTP狀態(tài)碼
- 1開頭:臨時(shí)響應(yīng)。表示臨時(shí)響應(yīng)并需要客戶端繼續(xù)執(zhí)行操作的狀態(tài)碼或杠。
- 2開頭:成功哪怔。
200 請(qǐng)求成功。 - 3開頭:表示請(qǐng)求的目標(biāo)有變化向抢,希望客戶端進(jìn)一步處理认境。
301:永久性重定向。
302:臨時(shí)性重定向笋额。
304:與服務(wù)器對(duì)比之后文件未改變元暴,直接讀取原有緩存資源篷扩。 - 4開頭:請(qǐng)求錯(cuò)誤兄猩。
403:無權(quán)限。
404:請(qǐng)求的頁面不存在鉴未。 - 5開頭:服務(wù)器錯(cuò)誤枢冤。服務(wù)器在嘗試處理請(qǐng)求時(shí)發(fā)生內(nèi)部錯(cuò)誤。
500:服務(wù)器錯(cuò)誤铜秆。
503:服務(wù)器暫時(shí)錯(cuò)誤淹真,可以稍后再試。
2连茧、發(fā)布訂閱模式
優(yōu)點(diǎn):
1核蘸、實(shí)現(xiàn)時(shí)間上的解耦(組件、模塊之間的異步通訊)
2啸驯、對(duì)象之間的解耦客扎,交由發(fā)布訂閱的對(duì)象管理對(duì)象之間的耦合關(guān)系。
缺點(diǎn):
3罚斗、創(chuàng)建訂閱者本身會(huì)消耗內(nèi)存徙鱼,訂閱消息后,可能永遠(yuǎn)也不會(huì)有發(fā)布针姿,而訂閱者始終存在內(nèi)存中袱吆。
4、對(duì)象之間解耦的同時(shí)距淫,他們的關(guān)系也會(huì)被深埋在代碼背后绞绒,這會(huì)造成一定的維護(hù)成本。
發(fā)布者有哪些要素榕暇?
1蓬衡、”訂閱者“列表(Array):一個(gè)裝callback函數(shù)的數(shù)組饲趋。
2、“訂閱”的方法(Function):往數(shù)組里push callback撤蟆。
3奕塑、“通知訂閱者”的方法(Function):遍歷訂閱者列表,執(zhí)行里面的callback家肯。
4龄砰、發(fā)布消息的方法(Function):異步執(zhí)行函數(shù),執(zhí)行完畢后通知訂閱者讨衣。
訂閱者如何訂閱消息换棚? 調(diào)用“訂閱”的方法即可。
代碼:
class dep{
constructor(){
this.orderList = [] // 訂閱者的列表
}
subscribe(callback){
this.orderList.push(callback) // 訂閱者訂閱消息(增加訂閱者)
}
pub(){
// 此處用setTimeout代替異步請(qǐng)求
setTimeout((data)=>{
this.notify(data)
},1000)
}
notify(data){
this.orderList.forEach(callback=>{
callback(data)
})
}
}
var fa = new dep()
fa.subscribe(()=>{ // 訂閱消息
console.log('我收到消息了')
})
fa.pub() // 發(fā)布消息
項(xiàng)目中的應(yīng)用:
在小程序項(xiàng)目中反镇,app.js 里發(fā)一個(gè)異步請(qǐng)求固蚤,首頁和個(gè)人中心都訂閱 app.js 的請(qǐng)求數(shù)據(jù),請(qǐng)求成功后歹茶,通知訂閱者夕玩。