Webエクスペリエンスでは、この状況に遭遇することがよくあります。つまり、Baidu Alliance、Google Alliance、およびDomain Nameファイルを現在のWebページがあるドメイン名の外側のファイルを呼び出すと、非常に深刻なリクエスト遅延が発生します。それでは、この現象の深刻な要求遅延を解決する方法はありますか? DNSプリフェッチとは何ですか
DNSは、ドメイン名からIPマッピングを実装します。ドメイン名を介してサイトにアクセスするには、すべてのリクエストに対してDNS解像度が必要です。現在、各DNS解像度は通常200ミリ秒未満です。 DNS解像度の時間のかかる問題に応じて、一部のブラウザはDNSプリフェッチを使用してアクセスの流encyさを改善します。
DNSプリフェッチは、DNS前解像度テクノロジーです。 Webページを閲覧すると、ブラウザはWebページを読み込むときにWebページのドメイン名を解決およびキャッシュします。このように、現在のWebページの接続をクリックすると、DNSを解決してユーザーの待機時間を短縮し、ユーザーエクスペリエンスを改善する必要はありません。
現在、DNSプリフェッチをサポートするブラウザにはGoogle ChromeとFirefox 3.5が含まれます
ブラウザ側に特定のドメイン名を解析する場合は、ページにリンクタグを追加して実装できます。例えば:
<link rel = dns-prefetch href = http://img.vevb.com/>
ブラウザ側がドメイン名を事前に分解するかどうかを制御する場合は、HTTPヘッダーのX-DNS-Prefetch-Control属性を介してそれを制御できます。
残念ながら、Google ChromeとFirefox3.5のみが上記のタグをサポートしています
一般的に言えば、この遅延の理由は、相手のウェブサイトの帯域幅や負荷ではないため、この状況を正確に引き起こすものです。ザランは、DNSの解像度速度がリソース遅延の最大の原因である可能性が高いため、DNSの問題であると仮定して推測しようとしました。そのため、Zaolanは次のコードをページヘッダーに追加しました(DNS Pre-Parserとして使用):
<Meta http-equiv = x-dns-prefetch-control content = on />
<link rel = dns-prefetch href = http://bdimg.share.baidu.com/>
<link rel = dns-prefetch href = http://nsclick.baidu.com/>
<link rel = dns-prefetch href = http://hm.baidu.com/>
<link rel = dns-prefetch href = http://eiv.baidu.com/>
<link rel = dns-prefetch href = http://img.vevb.com/>
効果は非常に優れており(テストブラウザはIE8です)、他のページを開くとBaidu共有ボタンの読み込みが大幅に改善されます!
DNS-Prefetchについて簡単に学びましょう:
インターネットの基本的なプロトコルとして、DNSはWebサイトの最適化担当者によって簡単に見落とされているようです。現在、ほとんどの新しいブラウザがDNS解像度に最適化されています。典型的なDNS解像度には20〜120ミリ秒かかります。 DNS解像度の時間と数を短縮することは、最適化する良い方法です。 DNSプリフェッチは、この属性を備えたドメイン名です。この属性は、ユーザーがリンクをクリックしてバックグラウンドで解決する必要がありません。ドメイン名の解像度とコンテンツの読み込みはシリアルネットワーク操作であるため、この方法はユーザーの待ち時間を短縮し、ユーザーエクスペリエンスを改善できます。
ブラウザの最初のドメイン名DNS解像度とWebサイトの検索プロセスは次のとおりです。
ブラウザキャッシュシステムキャッシュルーターキャッシュ-ISP DNSキャッシュ再帰検索
ドメイン名DNS解像度検索プロセス
ChromeにはDNSのプリフェッチテクノロジーが組み込まれており、Firefox 3.5もこの機能を紹介しています。 ChromeとFirefox 3.5自体はそれに応じてDNS前解像度を最適化したため、DNSの前解像度を設定することの悪影響の1つは、Google ChromeブラウザーとFirefox Firefox 3.5ブラウザーのユーザーエクスペリエンスを減らす可能性があることです。
準備の実装:
1.メタ情報を使用して、現在のページをDNSで事前に並べる必要があることをブラウザに通知します。
2。ページヘッダーでリンクタグを使用して、Pre-Parse Pre-Parse DNSを強制します:<link rel = dns-prefetch href = http://bdimg.share.baidu.com/>
注:DNS-Prefetchは注意して使用する必要があります。複数のページで再分解するDNSを繰り返すと、繰り返されるDNSクエリの数が増加します。
PS:DNS前解像度は、主にWebサイトのフロントエンドページの最適化に使用されます。 SEOでのその役割はまだ検証されていませんが、ユーザーエクスペリエンスの強化REL = DNS-Prefetchの強化の一環として、発見に値するかもしれません。