課程標題 路白-瀏覽器相關
知識點
- BOM
- 事件模型
知識點
stopPropgation是阻止冒泡括细,為什么也可以阻止捕獲階段的向下傳遞条霜。
其實:stopPropagation的作用是阻止事件的傳播色冀,而非只阻止冒泡preventDefault
阻止標簽的默認行為续室,標簽的默認行為闯袒,在stoppropgation限制下依然可以執(zhí)行到幔嗦,需要preventDefault來阻攔酿愧。
例如:a標簽跳轉、 點擊表單的submit行為
- 請求的方式
原生ajax
new XMLHttpRequest() 了解一下用法邀泉。
xhr.onreadystatechange, xhr.timeout, xhr.upload,xhr.sendfetch API
a. 默認不帶cookie嬉挡,如果要帶cookies可以試著credentials
b. 錯誤不會reject,需要自己處理 比如404,500汇恤,不會導致fetch返回的promise標記為 reject庞钢。 可以通過response.ok來判斷請求
c. 不支持設置超時,需要自己封裝
d. 可以中止fetch因谎,ctl= new AbourtController(),通過signall在請求中傳遞基括,ctl.abort()來中止
fetch(request, options) ,返回一個promise
node-fetchaxios
支持adapter來適配各種平臺的請求
課后問題
- 如何從頂層阻止事件的傳播?
傳入addEventlistener的第三個參數(shù)财岔,true為捕獲階段风皿,false為冒泡階段,然后在頂層捕獲到事件的時候阻止事件的傳播匠璧,stopPropagation - stopPropagation 的具體作用
阻止事件繼續(xù)傳播 - event.target 和event.currentTarget的區(qū)別是什么桐款?
.target 是當前點擊的元素,currentTarget是事件實際執(zhí)行到的元素 - fetch如果不特殊設置夷恍,能自帶cookie嗎魔眨? fetch如何abort?
不帶cookie如果要帶cookie裁厅,需要設置credential屬性冰沙。
abort 可以通過調用 AbortController 將token傳遞給singnal,在需要中止的地方調用abort() - 封裝一個工具函數(shù)执虹,處理對于異步函數(shù)的超時處理
function asyncFunction