ホームページ  >  記事  >  ウェブフロントエンド  >  Webpack プロジェクトのネットワーク最適化コード共有

Webpack プロジェクトのネットワーク最適化コード共有

小云云
小云云オリジナル
2018-02-22 13:32:051518ブラウズ

SPA アプリケーションのプロセスは次のとおりです:

  1. HTMLをロード

  2. JavaScript (bundle.js)をロード

  3. JavaScriptを実行してインターフェースのリクエストを開始

  4. まずインターフェースとのHTTP/HTTPS接続を確立します(dnsクエリ/tcpハンドシェイク/TLSリンク)

  5. リクエストヘッダーを送信し、応答データを取得します...

  6. データをレンダリングしてユーザーに提示します

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実装前ですが、ちょっと面倒なのでプラグインに抽出しました。

rrreee

関連する推奨事項:

webpack モジュールと webpack3 の新機能の詳細な説明

Webpack サーバー側のコード パッケージ化例の詳細な説明


🎜 Webpack、vue、node は単一ページのコード共有を実現します🎜🎜🎜 🎜🎜

以上がWebpack プロジェクトのネットワーク最適化コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。