WeChatアプレットリクエストの前処理方法の詳細な説明

WeChatアプレットリクエストの前処理方法の詳細な説明

質問

一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラムのページがジャンプする前にデータ要求ステップを先に進めることができれば、より早くデータを要求できます。最適化の効果は、ページ ジャンプに必要な時間によって異なります。

必要

ジャンプ時間を最大限に活用し、事前にインターフェース データを要求しながら、古いプロジェクトを変更するコストを最小限に抑えるには、要求の前処理方法が必要です。現在私が担当している小規模なプログラム プロジェクトでは、インターフェース データを要求するために axios を使用しているため、ここでは axios での post の変換アイデアの例のみを示します。ここで、リクエスト時に事前に要求する必要があるインターフェースをキャッシュし、2 番目のリクエストが行われたときに最初のリクエストの promise を返すように post メソッドを書き直して、新しいリクエストを開始する必要がないようにします。

具体的な手順

1. postメソッドを変更する

http ファイル

let instance = axios.create({ // axios リクエストインスタンスを作成する // 一部のコードを省略});

let { post } = instance; // 元の投稿メソッドを保存する let cache = {}; // キャッシュを要求する instance.post = function(...list) {

 [url, data = {}] = リストにします。

 if (cache[url]) { // 事前にリクエストされたプロミスを返す
 pre = cache[url]とします。
 キャッシュ[url]を削除します。
 戻り値:
 }

 if (data.pre) { //pre を事前リクエストとして使用して、事前リクエストかどうかを判断します delete data.pre;
 キャッシュ[url] = post(...リスト)
 cache[url]を返します。
 }

 return post(...list); //通常のリクエスト}

2. 使用

ジャンプ前のページ、つまり前のページ

// 一部のコードを省略します...

// これは次のページのインターフェースから要求されるデータです。wx.navigateTo がジャンプする前に事前に要求して保存します。
$http.post('/act/activities/lucky:search', { activityId: 12 , pre: true })

wx.nextTick(() => { //wx.nextTickを使用すると、上記のリクエストを最初に送信してからジャンプすることができますwx.navigateTo({
 url: `${TYPE_TO_ROUTE_MAP[templateType]}?id=${activity.activityId}`
 });
})

// 一部のコードを省略します...

効果

プリロードを使用しない

プリロードの使用

赤いボックスの幅の差は、インターフェース データを事前に要求するのに必要な時間を示しており、約 100 ミリ秒です。以下の静的リソース アドレスはインターフェイス データから取得されるため、輻輳後のリソースの読み込み時間を約 100 ミリ秒短縮することに相当します。

要約する

  • 原理としては、アプレットジャンプの時間を利用して事前にデータをリクエストするため、パフォーマンスの低い携帯電話ではより有利になります。開発者ツールでは約 100 ミリ秒の節約になるようですが、次の 2 つの制限があります。
  • ページが読み込まれ、事前に要求されたインターフェースデータ内のデータが必要です
  • 前のページで事前リクエストを開始し、ジャンプ時にnextTick処理を実行する必要がある

結果として、この最適化の利点は、プロジェクト全体にとっては実際にはあまり役に立ちません。

WeChatミニプログラムリクエスト事前配置に関するこの記事はこれで終わりです。より関連性の高いミニプログラムリクエスト事前配置コンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。皆様が今後も123WORDPRESS.COMを応援してくれることを願っています。

以下もご興味があるかもしれません:
  • WeChatミニプログラムでHTTPリクエストを設定するための詳細な手順
  • WeChatアプレットGETリクエスト例の詳細な説明
  • WeChatアプレット同期リクエストの承認の詳細な説明
  • WeChatアプレットネットワークリクエスト(GETリクエスト)の詳細な説明
  • WeChatアプレットPOSTリクエスト例の詳細な説明
  • WeChat アプレット ネットワーク リクエスト (投稿リクエスト、取得リクエスト)
  • WeChat アプレットの http リクエストのカプセル化の詳細な説明とサンプル コード
  • WeChat アプレット HTTP インターフェース リクエストのカプセル化コード例
  • WeChat アプレット ネットワーク リクエストのカプセル化の例

<<:  YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル

>>:  mysql5.7.14 解凍版インストールグラフィックチュートリアル

推薦する

少なくとも7日間連続して注文を行ったユーザーに対するSQLクエリ

テーブルを作成するテーブル order(id varchar(10),date datetime,o...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

CSS ボーダーは四隅の実装コードを追加します

1.html <div class="ログインボディ"> <...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

HTML テーブルタグチュートリアル (7): 背景色属性 BGCOLOR

テーブルの背景色は、BGCOLOR 属性を通じて設定できます。基本的な構文<テーブル BGCO...

Docker で Ubuntu に Python3 と Pip をインストールする際の問題

文章1) Ubuntuイメージをダウンロードする docker プル Ubuntu 2) 画像を見る...

Win7 64 ビット版に MySQL 5.7 をダウンロードしてインストールする際によくある問題の概要

1. 公式ウェブサイトからMySQLをダウンロードします。 これが私たちが探しているものです、win...

今日と昨日の 0:00 タイムスタンプを取得する MySQL の例

以下のように表示されます。昨日: UNIX_TIMESTAMP(CAST(SYSDATE() AS ...

CSSはグラデーションを巧みに利用して高度な背景光アニメーションを実現します

成し遂げるこの効果は CSS を使用して完全に再現することは困難です。 CSS でシミュレートされた...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

MySQLの最適化の詳細な分析とパフォーマンス

導入データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点を...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

MySQLサービスを開くおよび閉じる2つの方法

方法1: cmdコマンドを使用するまず、DOS ウィンドウを開き、スタート、実行、cmd と入力しま...