起源あるページではすべてのデータをダウンロードする必要があり、ダウンロードするデータの量が多く、インターフェースの遅延が長くなります... あるページの初期データの読み込みには時間がかかりますが、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 のインストールと設定方法のグラフィックチュートリアル
共同インデックスこの記事におけるジョイントインデックスの定義は次のとおりです (MySQL): AL...
<テンプレート> <div class="アプリコンテナ"&...
エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...
序文この記事では、docker-compose と dockerfile を使用して、binlog ...
目次問題の説明:インストール手順1. 準備2. サーバーにリモート接続する3. 証明書と秘密鍵ファイ...
Vue2 の記述スタイルから Vue3 の形式に切り替えると、記述スタイルとコード構造にいくつかの変...
CSS を使用するだけで、コーナーカット + ボーダー + 投影 + コンテンツの背景色のグラデーシ...
序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...
ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...
Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...
目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...
最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...
この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...
質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...
最近、「フロントエンドキャッシュ」という新しい要件が作成されました要件背景: フォームへの高頻度の繰...