首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么使源脚本不加载然后再加载呢?

是什么使源脚本不加载然后再加载呢?
EN

Stack Overflow用户
提问于 2022-01-04 09:18:15
回答 1查看 104关注 0票数 0

当使用带有<script>属性的src标记时,应该会期望它下载:

代码语言:javascript
复制
<script src="https://unpkg.com/neovis.js@2.0.0-alpha.9/dist/neovis.js"></script>

但是最近它没能下载,我也找不到为什么会这样。可能的可靠解决方法是,当发生这种情况时,我将其更改为:

代码语言:javascript
复制
<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>

此时,控制台表示它已加载,但实际上没有加载。但在那之后,当我把它恢复到:

代码语言:javascript
复制
<script src="https://unpkg.com/neovis.js@2.0.0-alpha.9/dist/neovis.js"></script>

那它又起作用了。这种情况在两个浏览器(Edge和Firefox)中已经发生过两次,我还没有机会再次测试它。

这种奇怪行为的原因是什么?这会是一种缓存吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-04 09:33:20

浏览器按文件名缓存脚本。可能添加/删除onload和onerror属性会迫使浏览器再次下载脚本。

若要强制重新加载文件,可以应用版本控制。

代码语言:javascript
复制
<script src="util.js?v=1"></script>

现代框架用于自动连接、缩小和重命名脚本文件。你可以用webpack这样的工具来做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70576469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档