Ein kleines Skript, mit dem Sie eine Funktion nur bei Bedarf polyieren können - keine verschwendeten Anfragen an Browsern mit nativem Support! ?
Dieses Skript ist ~ 4,2 KB UN Minified (121 Zeilen) (1,04 KB UN , minified und gziped) , ~ 8,37 kB UN , die mit Inline -Kommentaren (121 Zeilen) (2,12 KB UN Minified und Gziped) abgebaut sind, oder ~ 1,9 KB Minified (1 Zeile) (743B Minified und Gziped) oder ~ 1,9 KB (1 Zeile) (743B Mined und Gziped) , so dass es ziemlich leicht ist. ?
Bereitstellungen finden Sie in Notes zum Bereitstellen des Projekts in einem Live -System.
Stellen Sie sicher, dass Sie wissen, auf welche Funktionen Ihr Skript angewiesen ist, und diejenigen, die die von Ihnen unterstützten Browser nicht nativ unterstützt (Sie können https://caniuse.com/ überprüfen).
npm i dynamic-polyfiller aus import React from 'react' ;
import { render } from 'react-dom' ;
//The import below is the bit you need!
import dynamicPolyfill from 'dynamic-polyfiller' ;
dynamicPolyfill (
[ "IntersectionObserver" , "Object.assign" ] ,
'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js' ,
'quicklink();'
) ;dynamicPolyfill(); Hinweis: Fallempfindlich dynamicPolyfill( ["IntersectionObserver", "Object.assign"], 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();' )
onLoad dynamicPolyfill() hinzustring oder als array erwartet, kann aber leer ( '' ) oder null sein, wenn Sie kein Drittanbieter -Skript laden.string oder array erwartet.<script></script> Tag hinzu, das mit diesem Skript verlinkt wird <script src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'>
</script>
onLoad dynamicPolyfill() hinzustring oder als array erwartet, kann aber leer ( '' ) oder null sein, wenn Sie kein Drittanbieter -Skript laden.string oder array erwartet.Hinweis: Das Laden von einem CDN würde immer noch zu einer potenziell verschwendeten Anfrage führen?
dynamicPolyfill( 'IntersectionObserver', 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();' );
dynamicPolyfill( ["IntersectionObserver", "Object.assign"], ['https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'https://other.cdn.net/script.js'], ['quicklink();', 'otherFunction();'] );
Hinweis: Sie müssen sicherstellen, dass das tatsächliche Skript selbst die Funktion dynamicPolyfill() aufruft. Wenn Sie das Skript selbst hosten (anstatt zu einem CDN aufzurufen), stellen Sie sicher, dass Sie zuerst den Skriptcode eingeben, und rufen Sie die Funktion an. Sie können dies auf die gleiche Weise wie oben tun, aber die CDN -URL durch den Pfad zu Ihrer eigenen JS -Datei ersetzen, wenn Sie sie nicht aus derselben Datei aufrufen.
<script
src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'
onload='dynamicPolyfill( ["IntersectionObserver", "Object.assign"], 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();')'>
</script>
<script
src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'
onload='dynamicPolyfill(["IntersectionObserver", "Object.assign"], ['https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'https://other.cdn.net/script.js'], ['quicklink();', 'otherFunction();'])'>
</script>
Für die verfügbaren Versionen finden Sie im Repo -Veröffentlichungshistorium. Ich würde empfehlen, sich an die "neueste Veröffentlichung" zu halten!
Siehe auch die Liste der Mitwirkenden, die an diesem kleinen Nugget teilgenommen haben!
Bitte lesen Sie den Beitrag zum Verhaltenskodex und den Vorgang zum Senden von Pull -Anfragen.
Dieses Projekt ist unter der MIT -Lizenz lizenziert - finden Sie in der lizenz.md -Datei für Details