Un pequeño script que solo le permite pololear una función cuando es absolutamente necesario, ¡no hay solicitudes desperdiciadas en los navegadores que tienen soporte nativo! ?
Este script es ~ 4.2kb un minificado (121 líneas) (1.04kb un minificado y gzipped) , ~ 8.37kb no minificado con comentarios en línea (121 líneas) (2.12kb un minificado y gzipped) , o ~ 1.9kb minificado (1 línea) (743b minificado y GZippip) , por lo que es bastante ligero. ?
Consulte la implementación de notas sobre cómo implementar el proyecto en un sistema en vivo.
Asegúrese de saber en qué características depende de su guión y suplique aquellos que no son compatibles de forma nativa en los navegadores que admite (puede consultar https://caniuse.com/).
npm i dynamic-polyfiller 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(); Nota: Case sensible a dynamicPolyfill( ["IntersectionObserver", "Object.assign"], 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();' )
onLoad a la etiqueta que llama a la función dynamicPolyfill() y pase sus parámetrosstring o una array , pero puede estar en blanco ( '' ) o null si no está cargando un script de terceros.string o una array .<script></script> vinculación de la etiqueta a este script <script src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'>
</script>
onLoad a la etiqueta que llama a la función dynamicPolyfill() y pase sus parámetrosstring o una array , pero puede estar en blanco ( '' ) o null si no está cargando un script de terceros.string o una array .Nota: ¿La carga de un CDN aún daría como resultado una solicitud potencialmente desperdiciada?
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();'] );
Nota: debe asegurarse de que antes de llamar a la función dynamicPolyfill() que el script real ha cargado. Si va a alojar el script usted mismo (en lugar de llamar a un CDN), asegúrese de incluir primero el código de script, luego llame a la función. Puede hacer esto de la misma manera que se indicó, pero reemplace la URL CDN con la ruta a su propio archivo JS, si no lo va a llamar desde el mismo archivo.
<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>
Para las versiones disponibles, consulte el historial de lanzamiento de Repo. ¡Sin embargo, recomendaría seguir con el "último lanzamiento"!
¡Vea también la lista de contribuyentes que han participado en esta pequeña pepita!
Lea Contriping.MD para obtener detalles sobre el código de conducta y el proceso para enviar solicitudes de extracción.
Este proyecto tiene licencia bajo la licencia MIT: consulte el archivo de licencia.md para más detalles