起源あるページではすべてのデータをダウンロードする必要があり、ダウンロードするデータの量が多く、インターフェースの遅延が長くなります... あるページの初期データの読み込みには時間がかかりますが、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. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...
質問通常の開発では、プロジェクトを Tomcat にデプロイする場合、プロジェクトを war パッケ...
インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...
1. ローカルマシンを監視するためにZabbixエージェントをインストールするエージェントソフトウェ...
Docker-ComposeとはCompose プロジェクトは、以前の fig プロジェクトから派生...
目次角度成し遂げる呼び出し順序知らせイオニックionic はページのライフサイクルをどのように処理し...
最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...
目次1. 実施の背景2. 実装のアイデア3. 実施プロセス1. 実施の背景先週、ユーザーがタスクを完...
目次1. ElementUIで基本的なスタイルを構築する2. [送信]ボタンをクリックして、アカウン...
IE6 は PNG の透明度をサポートしていないと多くの人が言っています。実際、IE は 100%...
1. ページ要件1) 標準のヘッダーとフッターを使用するXML/HTML コードコンテンツをクリップ...
1. setUp関数の最初のパラメータpropsセットアップ(プロパティ、コンテキスト){}最初のパ...
1. はじめに以前は、Python アプリケーションの作成を開始したい場合、最初のステップはマシンに...
目次アレイ重複排除1 2層forループ(バブルソートの2層ループ記述に類似) 2 ループとインデック...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...