2017年の導入以来、 AbortController
fetch()
リクエストをキャンセルするための強力なメカニズムを提供してきました。この機能は、単純なAPI呼び出しを超えて拡張され、特にドラッグアンドドロップインタラクションなどのシナリオで、イベントリスナーを管理するためのエレガントなソリューションを提供します。
簡単な例はfetch()
リクエストをキャンセルすることを示しています。
const Controller = new AbortController(); const res = fetch( '/'、{signal:controller.signal}); controller.abort(); console.log(res); // =>約束(拒否):「Domexception:ユーザーはリクエストを中止しました」
また、 AbortController
タイムアウトの取り扱いを改善し、 setTimeout
に代わるよりクリーンな代替品を提供します。
関数タイムアウト(持続時間、信号){ 新しい約束を返す((解決、拒否)=> { const handle = setimeout(resolve、duration); Signal?..AddeventListener( 'Abort'、()=> { ClearTimeOut(ハンドル); 拒否(新しいエラー( 'Aborted')); }); }); } // 使用法 const Controller = new AbortController(); const promise = timeout(10000、controller.signal); controller.abort(); console.log(Promise); // =>約束(拒否):「エラー:中止」
しかし、重要な進歩は、 addEventListener
内のAbortSignal
に対するChrome 88のサポートにあります。これにより、複数のイベントリスナーを同時に削除するための合理化されたアプローチが可能になり、複数のremoveEventListener
コールが必要になります。
ドラッグアンドドロップの例を考えてみましょう。以前は、 mousedown
、 mousemove
、およびmouseup
イベントの管理には、 removeEventListener
を使用した明示的な除去が必要でした。
// removeEventListenerを使用します el.AddeventListener( 'Mousedown'、e => { if(e.buttons!== 1)return; const onmousemove = e => { if(e.buttons!== 1)return; /* 仕事 */ }; const onmouseup = e => { if(e.buttons&1)return; window.removeeventlistener( 'mousemove'、onmousemove); window.removeeventlistener( 'mouseup'、onmouseup); }; window.addeventlistener( 'mousemove'、onmousemove); window.addeventlistener( 'mouseup'、onmouseup); });
AbortController
使用すると、単一のabort()
コールがすべての関連するリスナーをきれいに削除します。
// abortcontrollerを使用します el.AddeventListener( 'Mousedown'、e => { if(e.buttons!== 1)return; const Controller = new AbortController(); window.addeventlistener( 'mousemove'、e => { if(e.buttons!== 1)return; /* 仕事 */ }、{signal:controller.signal}); window.addeventlistener( 'mouseup'、e => { if(e.buttons&1)return; controller.abort(); }、{signal:controller.signal}); });
現在、Chrome 88のみがaddEventListener
とのこのAbortSignal
統合を完全にサポートしています。他のブラウザはAbortController
をサポートしていますが、この特定の機能はまだ広く実装されていません。より幅広い互換性のために、ポリフィルを利用できます。
以上がイベントリスナーを削除するための代替としてAbortControllerを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

@keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

csScounterSareSareusedTomageautomaticinginginwebdesigns.1)それらは、コンテンツ、リスト、および積極的なものを使用することができます

特にモバイルデバイスでは、スクロールシャドウを使用することは、Chrisが以前にカバーした微妙なUXです。 Geoffは、アニメーションタイムラインプロパティを使用する新しいアプローチをカバーしました。これがさらに別の方法です。

簡単に復習してみましょう。画像マップはHTML 3.2に戻ります。ここで、最初にサーバー側マップを使用してから、マップとエリア要素を使用して画像上でクリック可能な領域を定義したクライアント側マップをマップしました。

State of Devsの調査は現在、参加に対して開かれており、以前の調査とは異なり、コードを除くすべてをカバーしています:キャリア、職場だけでなく、健康、趣味などもあります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
