起源あるページではすべてのデータをダウンロードする必要があり、ダウンロードするデータの量が多く、インターフェースの遅延が長くなります... あるページの初期データの読み込みには時間がかかりますが、1 回の検索は高速です。初期データの読み込み中は検索インターフェイスに戻り、その後の初期データの戻りで検索データの表示をカバーします。 このような状況では、次のことが必要です。
現状このシステムは、Laoge Huakucha のオープンソース vue-element-admin をベースに二次開発したものです。リクエストは axios を使用しており、カプセル化された request.js のキーコードは次のとおりです。 // axiosインスタンスを作成する constサービス = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // url = ベース URL + リクエスト URL withCredentials: true, // クロスドメインリクエスト時にCookieを送信する timeout: 500000, // リクエストタイムアウト 変換リクエスト: [関数(データ) { // データに対して任意の変換を実行します return Qs.stringify({ ...データ }, // 配列変換 { arrayFormat: 'brackets' }) }] }) // リクエストインターセプター サービスインターセプターリクエストの使用( 設定 => { // リクエストが送信される前に何かを行う (store.getters.token)の場合{ // 各リクエストにトークンを持たせる // ['X-Token']はカスタムヘッダーキーです // 実際の状況に応じて変更してください config.headers['token'] = getToken() } 設定を返す }, エラー => { // リクエストエラーに対して何かを行う console.log(error) // デバッグ用 Promise.reject(error) を返します。 } ) リクエストを開始する方法: エクスポート関数remoteApi(data) { リクエストを返す({ URL: '/api', メソッド: 'post'、 データ }) } リクエストをキャンセル cancelToken公式ドキュメント: キャンセル: CancelToken は axios.CancelToken に置き換えられます。 const ソース = CancelToken.source(); axios.get('/user/12345', { キャンセルトークン: ソース.token }).catch(関数(スロー) { もし(axios.isCancel(スロー)){ console.log('リクエストがキャンセルされました', throwed.message); } それ以外 { // エラーを処理する } }); axios.post('/user/12345', { 名前: '新しい名前' }, { キャンセルトークン: ソース.token }) // リクエストをキャンセルします(メッセージパラメータはオプションです) source.cancel('ユーザーによって操作がキャンセルされました。'); リクエスト方法の変更エクスポート関数 remoteApi(data, cancelToken) { リクエストを返す({ URL: '/api', メソッド: 'post'、 キャンセルトークン、 データ }) } 実際のリクエストを行うときは、cachelToken を作成します。 // コンポーネントメソッドで this.cancelToken = CancelToken.source() remoreApi(データ、this.cancelToken)、then(....)、catch(....)、finally(....) リクエストをキャンセルするには、次を実行します。 // コンポーネントメソッドで this.cancelToken.cancel('ダウンロードをキャンセル') 重複したリクエストを避ける遅延の長いインターフェースの戻りデータが別のインターフェースの戻りデータを上書きしてデータ表示エラーが発生するのを防ぐため、インターフェースへの要求を繰り返し実行しないでください。アイデアは比較的シンプルで、グローバル マップを使用してリクエスト ID と対応する cancelTokens を保存します。リクエストを開始する前に、リクエスト識別子に応じて対応する cancelToken の cancel メソッドを呼び出し、条件を満たす新しいリクエストを発行します。 要約するaxios リクエストのキャンセルと重複リクエストの回避に関するこの記事はこれで終わりです。axios リクエストのキャンセルの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル
1. 空のディレクトリを作成する $ cd /home/xm6f/dev $ mkdir myapp...
目次1. 準備: 2. ソースコードのコンパイル1. 設定する2. コンパイルエラー3. ターゲット...
目次1. 実施プロセス2. オブザーバーを表示する3. ウォッチャーを実装する4. コンパイルを実装...
MySQL は現在、ほとんどの企業や事業体で使用されているデータベースです。MySQL が使用される...
構文: <marquee> …</marquee>モバイル属性マーキーを使用...
1. ブラウザのレンダリングモードとdoctype一部の Web ページは標準に従って作成されていま...
ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...
この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...
ylbtech_html_print HTML 印刷コード、ページめくりをサポートコードをコピーコー...
VMWare (Virtual Machine ware) は、「仮想 PC」ソフトウェア会社です。...
この記事では、オンラインリアルタイム多人数チャットルームを実現するためのNode.js+expres...
方法1: var a = [1,2,3]; var b = [4,5] b を連結します。 コンソー...
セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...
1. <dl>はリストを定義し、<dt>はリスト内の項目を定義し、<d...
Centos8仮想マシンを起動し、上下キーを押して図1のインターフェースの最初の行を選択します。図1...