モバイル最適化された旅行(2)

私たちは目標を最適化したことは次のとおりです。インターフェースは、データがクエリが待つことができます更新する正しいリターンであるかどうか、表示されるや否や。

序文

最初の部分は、コード最適化の方向を示します。

  1. 時間のかかるjqueryのを削除

  2. 最適化の個人コード

時間のかかるjqueryのを削除

jQueryのコードは、関数ノードを追加し、機能を拡張し、jqueryのを使用してメインセレクタ関数の代わりに使用します。

同等のネイティブオペレーティングjQueryのDOM

除去された部分のjqueryの、スタート画面の空白または醜いため、その後の高速周りの200msのが、卵と、ものの。

画像のキャプション

最良の効果は、赤いボックス赤いボックスの前に戻ってのタイミングを最適化することです。以下はAに、動作モードでありますsetTimeout

最適化の個人コード

最後の章の例では、我々は次のテストを再:

!function() {

    var date = new Date();
    var curDate = null;
    do {
        curDate = new Date();
    } while (curDate - date < 2000);

    setTimeout(function() {
        var el = document.getElementById("page");
        el.innerHTML = "This is a second page";
        console.log(2);
    }, 2000)
}()

ときにindex.js論理インターフェイスが時々まで、そのような時間を超えている2s実行が完了時々ない後にレンダリングされます。なぜ?もしカトンので、次に
カトンの上の最初の実装とすることができる2s操作。ここでは、最初のレンダリングインタフェースまたは不確実なJSを実行しますが、タイミング解析タイムラインが固定されている2s
アカウントに実行している時間を、図:

画像のキャプション

画像のキャプション

しかし、我々は上記置けばindex.js、以下のフォームに内容を:

!function() {

    setTimeout(function() {
        var date = new Date();
        var curDate = null;
        do {
            curDate = new Date();
        } while (curDate - date < 2000);

        console.log(curDate - date);
    }, 100);

    setTimeout(function() {
        var el = document.getElementById("page");
        el.innerHTML = "This is a second page";
        console.log(2);
    }, 2000)
}()    

下に示すように、タイミング解析結果:

画像のキャプション

画像のキャプション

携帯電話で見ることができ、タイミングが同じショー、最初のインタフェースのうちではありません!

概要

この考え方のもと、当社は、書き換える必要がありhtml、次のようにコードを変更し、ページを:

    <!doctype html>
    <html>
    <head>
        <title>Test</title>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
        <meta name="format-detection" content="telephone=no" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="white" />
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <link rel="stylesheet" type="text/css" href="../../tlibs/style.css">
    </head>
    <body style="overflow: hidden;margin:0;">
    <div id="app"><h1 style="color: red;">Hello World</h1></div>
    <div id="mask"></div>
    </body>
    <script type="text/javascript">
        
        setTimeout(function() {

            var urls = [
                "../../libs/highcharts.js",
                "../../tlibs/connect.js",
                "../../tlibs/__tdx_vendor.js",
                "../../tlibs/__tdx_client.js",
                "./index_config.js"
            ];

            for(var i = 0; i < urls.length; i++) {
                var el = document.createElement("script");
                el.setAttribute("src", urls[i]);
                // el.setAttribute("defer", "defer");
                document.body.appendChild(el);
            }

            setTimeout(function() {
                var el = document.createElement("script");
                el.setAttribute("src", "./index_func.js");
                document.body.appendChild(el);    
            }, 300)

        }, 10)

    </script>
    </html>

最初のステップは、我々がいることを確認しhtml、ページがロードされ、インターフェースが表示されます。

氏の静的なページであるように、第2のステップは、我々は、静的なページである必要があります。

ここではそれがに来るReact静的ファイルを生成し、サーバー側のレンダリング、ここで原稿がすることですSEO言及した時間を最適化します。

import { renderToString } from "react-dom/server"

おすすめ

転載: www.cnblogs.com/baimeishaoxia/p/12633707.html