起源あるページではすべてのデータをダウンロードする必要があり、ダウンロードするデータの量が多く、インターフェースの遅延が長くなります... あるページの初期データの読み込みには時間がかかりますが、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 のインストールと設定方法のグラフィックチュートリアル
この記事では、Amapを使用して都市の位置特定を実現するVueの具体的なコードを参考までに共有します...
Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...
目次変数データ型拡張ポイント要約する変数基本的な構文 var age=10; //ageという変数を...
1. インストールパッケージを使用してMySQLをインストールします(オンラインダウンロードは遅すぎ...
この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...
絶対 URL は、インターネット上の特定のファイルに必要なすべてのコンテンツを表すために使用されます...
Docker コンテナでユーザーを切り替えると、権限が不十分であるというメッセージが表示されます。解...
ネットワークが分離されているため、MySQL は yum を使用してインストールできません。ここでは...
インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...
イメージをダウンロードします(オプションの手順です。省略した場合は、手順 3 と 4 で自動的にイン...
VirtualBoxのインストールディレクトリを見つけます。ディレクトリ内には容量を拡張するために...
1. インラインスタイル仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェク...
MySQL でレコードを更新すると、構文は正しいのですが、レコードが更新されません...質問文実行前...
目次序文1. 基本環境1. サービス配信2. ネットワーク構成(全ノード) 3. SSHパスワードフ...
1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...