ネットワーク伝送を本当に中断できるキャンセルリクエストを実装するにはどうすればよいでしょうか?
XHRにはリクエストをキャンセルする機能がありません。Axiosは実際にXHRを使用します。この種のリクエストはネットワーク伝送を中断できません。ネットワーク伝送を中断したい場合は、フェッチを使用するだけです。効果は同じですが、伝送効率は低くなります。大幅に改善され、不要な送信が大幅に削減されました
//写一个构造函数
//AbortController 表示终止的控制器
//const controller=new AbortController()//返回了一个对象
//controller.abort()
let container
//这个控制器提供了函数, abort 调用这个函数就会取消
input.oninput=async()=>{
controller.abort()
//创建一个控制器
controller && controller.abort()
//给当前的请求在创建一个控制器
controller=new AbortController()
//这个控制器喝fetch进行关联
try{
const list =await fetch(`http://localhost:3100/api/search?key=${input.value}`,{
//配置的属性叫signal信号,取消信号
signal:controller.signal
}).then((res)=>res.json());
createSuggest(list)
}
catch{
console.log('first')
}
}
ナビゲーションバーの切り替え、検索などの機能に適用可能