2017-01-25 8 views
0

私はウェブサイト上でいくつかのコードを分析していますが、次の匿名関数の後にtry catchステートメントが続きます。私はtry catchステートメントが最後に何をしているのか疑問に思っています。 URLをあらかじめロードしておくと、無名関数がより速く読み込まれるようになりますか?また、何が間違いをキャッチしていないということです。 MDNのlink typesリストを参照してJavascript try catchステートメント

(function() { 
     var fired = false; 
     bsnPop.add("http://www.someurl.com", { 
      under: !noPopunder, 
      newTab: false, 
      forceUnder: true, 
      shouldFire: function() { 
       return !fired; 
      }, 
      cookieExpires: -1, 
      afterOpen: function(url) { 
       createCookie(); 
       fired = true; 
       doSecondPop(); 
      } 
     }); 
    })(); 
    try { 
     var hint = document.createElement("link"); 
     hint.rel = "dns-prefetch"; 
     hint.href = "http://www.someurl.com"; 
     document.head.appendChild(hint); 
     var hint = document.createElement("link"); 
     hint.rel = "preconnect"; 
     hint.href = "http://www.someurl.com"; 
     document.head.appendChild(hint); 
    } catch (e) {} 
+0

かなり役に立たない... – Eric

+1

あなたのタイトルは、あなたがJavaScriptの 'try' /' catch'機能について質問していることを示唆しています。問題は、 'try' **がやっている**コード*の中身を尋ねることです。これは 'try' /' catch'とは全く関係ありません。これとは別に、*「何が間違いをキャッチしていないのか」*はい、すべてのエラーをキャッチします。その後、完全に無視されます。 –

+0

コンソールエラーを抑制する効果があるようです –

答えて

3

、「DNSプリフェッチ」および「PRECONNECTは」実験として記載されています。リンク要素のリンクタイプの「rel」値のリストには表示されませんHTML5

このコードではウェブ上で実験的な技術を使用しているため、一部のブラウザでエラーが発生する可能性があります。アプリケーションの停止やコンソールへの例外の記録を防ぐため、コードはブロックに配置され、エラーは無視されるcatchブロックとなります。


質問の詳細については、IIFEの無名関数が呼び出され、 bsnPop.addの呼び出しでパラメータとコールバックを含むオブジェクトが渡されます。この段階では、ポップアップウィンドウを作成していないようです。

tryブロック内の次のコードは、Webサイトの名前のDNS検索を事前に要求し、コンテンツを取得する前にサイトへの接続を開くことによってWebサイトへのアクセスを高速化しようとします。

コードは、要求された操作がサポートされていない場合、ブラウザが例外をスローする可能性に対応するためにtryブロックに配置されます。アプリケーションは、サポートの欠如がエラーとみなされず、とにかく続けたいと考えています。

dns-prefetchまたはpreconnectがサポートされている場合、ブラウザはヒントを取得して操作を実行できます。サポートされていない場合、生成されたエラーは無視され、次のステートメントでコードが続行されます。後でWebサイトに接続すると、通常の速度で処理する必要があります。

+0

応答に感謝します。だから匿名関数が起動し、try catchも起動します。両方が本質的に同じことをしているなら、私はその点を理解していません。ポイントは何ですか? –

+0

@EliseCrane、私はあなたのコメントに答えて答えを更新しました。 – traktor53

+0

@ Tracktor53ありがとう!とても有難い。 –

関連する問題