2017-02-02 4 views
1

Gemäß caniuse.com Ressource Voreinstellung<link rel="prefetch" href="some-resource" /> ist nur in einigen Browsern verfügbar.So erkennen Sie rel = "prefetch"

Wie kann ich dies in JavaScript erkennen? Im Beispiel unten, wie Sie den Wert haben 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

Warum sich die Mühe, einfach eingestellt und diejenigen, wie kann es verwenden ... oder gibt es etwas, was Sie sonst noch brauchen? – LGSon

+0

@LGSon Ich werde einen Fallback verwenden, wenn Prefetch nicht unterstützt wird. – krampstudio

+1

Sie könnten sowieso immer zurückfallen, wenn der Browser den Prefetch unterstützt, dann sollte er bereits abgerufen werden, wenn Ihr Fallback einsetzt, also wird er zwischengespeichert und der Fallback wird nichts wirklich tun. –

Antwort

0

Ich habe es endlich Feature erkennen verwaltet. Es gibt Grenzfälle (wenn DomTokenList.supports wird ebenfalls nicht unterstützt), aber Sie tun können:

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');