フロントエンドを独学で学ぶのが苦手な方は、同社のホームページを確認すると、ヘッド部分に次のコードがあります。 リーリー
疑問 1: ここでは短絡アルゴリズムが使用されていますが、後で何に使用されるのでしょうか?これは一般的に行われているのでしょうか?疑問 2: このコードは、スクリプトの前に <script src='https://hm.baidu.com/hm.js?78...'> ステートメントを動的に追加することを意味します。しかし、なぜこれを行うのでしょうか?私はそれをテストし、このコードをヘッドに直接追加して同じ機能を実現しました。複数のページがある場合、このコードの各ページに追加する文字数は、関数の文字数よりも少なくなります。 。本当にわかりませんか? ?
教えてください、ありがとうございます!
大家讲道理2017-05-24 11:38:19
私は同様の統計ライブラリを実装したので、このメカニズムについての私の個人的な理解を簡単に共有したいと思います。
リーリーあなたの質問は、なぜhm.src
中的链接到 script 标签脚本中,而是先初始化 _hmt
変数を直接追加してからスクリプトを追加しないのかということです。これは統計ライブラリの関数実装に関連するはずです。簡単な紹介:
_hmt
本質的にはメッセージキューキャッシュです。この配列に挿入される内容は、クリック、スライド、タッチなどのあらゆる種類のユーザー イベントです。このメッセージ キューにプッシュされたイベントは、統計ライブラリによって Baidu Statistics に報告されます。
このキャッシュは、ファーストパーティのビジネス コードでの JS API を介した書き込みをサポートします。たとえば、Baidu Statistics を使用する開発者は、独自の JS コードで _hmt.push(xxx)
の形式でロジックを記述し、カスタム イベントをメッセージ キューにプッシュできます。
サードパーティのスクリプトもメッセージ キューに書き込むことができるため、キューの配列変数がグローバルであるだけでなく、できるだけ早く初期化する必要があります。統計ライブラリへのレポートなどのビジネス ロジックは、実行前にページのメイン コンテンツが読み込まれるまで遅延する可能性があります。
3.の要件を達成するため、統計スクリプトの導入方法は【配列を初期化してから統計スクリプトを動的にロードする】という設計になっています。このようにして、キュー配列をロードするときにページ内で直接インライン初期化を行うことは非常に効率的であり、後続の統計スクリプトのロードが遅れるため、ページのロード速度への影響が軽減されます。
黄舟2017-05-24 11:38:19
1. _hmt 変数が定義されているかどうかを確認するか、変数を定義します
2. 動的読み込み。ノード操作の読み込み優先度 <静的リソースです。これは、レンダリング ページに影響を与えないようにするためです。
テスト2. 2 行目では、2 つの読み込み効果を比較できます。
PHP中文网2017-05-24 11:38:19
これはBaidu統計からのコードです
その理由については
「別のページを作成し、このJSコードのみを追加しました。ポップアップされるページのコンテンツは相談ウィンドウの内容です。」
だからです。クロスドメイン
クロスドメインとは何かというと
他人の物を自分の家に持ち帰る方法です