SPA アプリケーションのプロセスは次のとおりです:
HTMLをロード
JavaScript (bundle.js)をロード
JavaScriptを実行してインターフェースのリクエストを開始
まずインターフェースとのHTTP/HTTPS接続を確立します(dnsクエリ/tcpハンドシェイク/TLSリンク)
リクエストヘッダーを送信し、応答データを取得します...
データをレンダリングしてユーザーに提示します
Vue/でパッケージ化したjs React + Webpack は 300KB を超えることが多く、ステップ 2 には時間がかかります。 ステップ2の進行中に、同時に接続を確立するステップ4を実行すると、時間を少し節約できます。
特にモバイル側では、接続の確立にほとんどの時間がかかるため、時間を節約できます。
<link rel="preconnect">
を使用して、ブラウザが事前に接続を確立できるようにします。 <link rel="preconnect">
让浏览器预先建立连接。主流浏览器大多已支持:https://caniuse.com/#feat=link-rel-preconnect
做了一个简单的webpack插件: https://github.com/joaner/html-webpack-preconnect-plugin
// $ npm install html-webpack-preconnect-plugin --save-dev var HtmlWebpackPreconnectPlugin = require('html-webpack-preconnect-plugin'); // webpack config { ... plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', // set the preconnect origins preconnect: [ 'http://api1.example.com', 'http://api2.example.com', ] }), // enabled preconnect plugin new HtmlWebpackPreconnectPlugin(), ] }
这个插件做的事非常简单,就是插入到<head>
里:
<!-- dist/index.html --> <head> ... <link rel="preconnect" href="http://api1.example.com"> <link rel="preconnect" href="http://api2.example.com"> </head>
我之前用HtmlWebpackPlugin
ほとんどの主流ブラウザはすでにサポートしています: https://caniuse.com/#feat=link-rel-preconnect
シンプルな Webpack プラグインを作成しました: https://github.com/joaner/html- webpack-preconnect-plugin
<!-- template.html --> <link rel="preconnect" href=<%= htmlWebpackPlugin.options.api1_origin %>>
このプラグインの機能は非常に単純で、<head>
に挿入されます: rrreee
HtmlWebpackPlugin
を使用しました> Template実装前ですが、ちょっと面倒なのでプラグインに抽出しました。
以上がWebpack プロジェクトのネットワーク最適化コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。