2017-02-02 7 views
1

caniuse.comリソース予報 は、一部のブラウザでのみ使用できます。機能の検出rel = "prefetch"

JavaScriptでこれを検出するにはどうすればよいですか?以下の例では、どのように私は最終的にそれを検出していますことができたisPrefecthSupported

if(isPrefecthSupported) { 
    let link = document.createElement('link'); 
    link.setAttribute('rel', 'prefetch'); 
    link.setAttribute('href', url); 
    link.setAttribute('disabled', true); 
    document.querySelector('head').appendChild(link); 
} else { 
    //try something else... 
} 
+0

はなぜ、単純にそれを設定わざわざ、それらがどのようにそれを使用することができます...またはあなたが必要とする何か他のものはありますか? – LGSon

+0

@LGSonプリフェッチがサポートされていない場合は、そうでない場合はフォールバックを使用します。 – krampstudio

+1

あなたはいつでもフォールバックすることができます。ブラウザがプリフェッチをサポートしている場合は、フォールバックが発生するまでにフェッチする必要があります。したがって、キャッシュされ、フォールバックは実際には何も行いません。 –

答えて

0

の価値を持っています。そこエッジケース(DomTokenList.supportsがいずれかのサポートされていません)ですが、あなたは行うことができます。

var support = function support(feature){ 
    var tokenList; 
    var fakeLink = document.createElement('link'); 
    try { 
     if(fakeLink.relList && _.isFunction(fakeLink.relList.supports)){ 
      return fakeLink.relList.supports(feature); 
     } 
    } catch(err){ 
     return false; 
    } 
}; 
var isPrefetchSupported = support('prefetch'); 
var isPreloadSupported = support('preload');