Cuando se usa una etiqueta <script> con el atributo src , se debe esperar que se descargue:
<script src="https://unpkg.com/neovis.js@2.0.0-alpha.9/dist/neovis.js"></script>Sin embargo, recientemente no se puede descargar y no puedo localizar la razón por la que se vuelve así. La solución posiblemente confiable es que cuando eso sucede, lo cambio a:
<script> function cdnLoaded() { console.log('loaded'); } function cdnError() { console.log('not loaded'); // do error handling here } </script> <script onload="cdnLoaded()" onerror="cdnError()" async src="https://unpkg.com/neovis.js@2.0.0-alpha.9/dist/neovis.js"></script>En este punto, la consola dice que está cargada, pero en realidad no es así. Pero después de eso, cuando lo vuelvo a:
<script src="https://unpkg.com/neovis.js@2.0.0-alpha.9/dist/neovis.js"></script>entonces vuelve a funcionar. Esto sucedió dos veces en dos navegadores (Edge y Firefox), y no he tenido la oportunidad de probarlo nuevamente.
¿Cuál puede ser la razón de este extraño comportamiento? ¿Podría ser esto una especie de almacenamiento en caché?
Scripts de caché del navegador por nombre de archivo. Probablemente agregar/eliminar las propiedades onload y onerror obligue al navegador a descargar el script nuevamente.
Para forzar la recarga del archivo, puede aplicar un control de versiones
<script src="util.js?v=1"></script>Los marcos modernos se utilizan para unir, minimizar y cambiar el nombre del archivo de script automáticamente. Puedes hacerlo con herramientas como webpack