使用 onload 事件异步加载 JavaScript 的缓存问题

2023-12-25

我目前正在尝试异步加载一些js文件,以便它们无法阻止网站的其余部分。 我主要遵循这里的描述:

异步Javascript http://friendlybit.com/js/lazy-loading-asyncronous-javascript/

就 javascript 文件的非阻塞加载而言,这非常有效,但我现在遇到了这样的问题:即使我更改内容,javascript 文件也会被缓存并保持缓存状态(而且执行 shift-reload 也没有任何帮助)。

我当前加载脚本的代码如下所示:

 (function() {
   function xx_async_load() {
     var xx = document.createElement('script');
     xx.type = 'text/javascript';
     xx.async = true;
     xx.src = 'http://myserver.de/myjs.js';
     var el = document.getElementsByTagName('script')[0];
     el.parentNode.insertBefore(xx, el);
   }

   if (window.addEventListener) {
     window.addEventListener('load', xx_async_load, false);
   } else if (window.attachEvent){
     window.attachEvent('onload', xx_async_load);
   }

 })();

如果我直接调用“xx_async_load”中的代码并更改 myjs.js,则更改会被识别,但如果我通过 onload 事件加载它,它始终会保持缓存状态,并且更改永远不会被识别。

有谁知道如何让浏览器识别缓存文件中的更改(问题出现在 Opera、FF 和 IE 中工作正常)?

EDIT:如果我查看 Operas Dragonfly 的“网络”选项卡,甚至没有在重新加载缓存的 JS 文件时发出请求,似乎它是直接从缓存加载它,甚至没有检查服务器上的文件。

EDIT2:我将测试它在缓存中保留多长时间。如果明天就消失了就好了。否则我仍然可以使用日期参数提出解决方法(因此接受该答案)。再次感谢。


是的,这相当简单。

只需为您的 URL 提供一个随机参数,例如: URL =http://www.yoururl.com http://www.yoururl.com -> http://www.yoururl.com/?number=(随机 http://www.yoururl.com/?number=(random number)

这样您将始终拥有一个唯一的网址。该参数在加载时会被页面丢弃,因为它没有被使用。

让我知道这是否有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 onload 事件异步加载 JavaScript 的缓存问题 的相关文章

  • 替换字符以制作国际字母(变音符号)

    我正在尝试模仿国际键盘的工作方式 如果您使用其中之一死钥匙 http en wikipedia org wiki Dead key后面跟着一个字母 它将它们组合成相应的字符 例如 输入 a会导致 and o结果是 etc 我似乎无法让我的正
  • 如何突出显示 html 文档中文本查询的搜索结果而忽略 html 标签?

    我有一个字符串 其中包含 html 内容 像这样的东西 const text My name is Alan and I span an span div class someClass artist div 我使用以下命令在反应组件中渲染
  • 替换后正确的子串位置

    我有一个由用户提供的这样的函数 function replace function string return string replace smile g replace foo bar baz g text 1 我有这样的输入字符串 v
  • 从请求响应创建 PDF 不适用于 axios,但适用于本机 xhr

    为了强制从服务器下载 PDF 我尝试使用 axios 和本机 xhr 对象 原因是我必须发送post请求 因为我向服务器传递了太多数据 所以带有简单链接的选项 例如site ru download pdf对我不起作用 尽管我最终设法用 Xh
  • height:100% 在 Internet Explorer 中不起作用

    我有一个关于 CSS 属性的问题height 100 在 Internet Explorer 中 height 100 在 IE 中不起作用 但在 Firefox 和 Chrome 中可以 HTML 文件 div ul ul div
  • Javascript 将即时生成的 BLOB 文件下载到特定文件夹中

    所以我正在尝试编写一个 Firefox Webextension 我想将网页的标题 网址和个人评论保存到文件中 myfile txt 这就是我得出的结论 我不希望我的 下载 文件夹很快变满 因此我想将它们下载到 下载 文件夹中包含的文件夹中
  • CSS 列不会水平对齐

    我正在使用列计数来允许我的文本流入两个不同的列 但第一列的顶部 最左边 低于另一列 col moz column count 2 webkit column count 2 column count 2 div h3 Options h3
  • 如何以编程方式确定 HTML 对象可以侦听哪些事件?

    我一直在查看developer mozilla org 和Apple 开发文档上的文档 但我找不到解释是否可以通过编程方式确定特定HTML 标记是否支持给定事件监听器的文档 就像我知道的那样
  • 容器中的等间距 div

    这是我的例子 http jsfiddle net rtCP3 62 http jsfiddle net rtCP3 62 我有 3 个 或更多 div 我想在一个容器中均匀分布 当将 Angular 与 ng repeat 一起使用时 样式
  • 对数组进行分组并获取计数[重复]

    这个问题在这里已经有答案了 假设我有这样的数组 foo bar foo bar bar bar zoom 我想将其分组 这样我就可以得到这样的计数 foo 2 bar 4 zoom 1 有没有一个实用程序可以做到这一点 只需使用该功能Arr
  • Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

    我使用 routeParams 从 URI 中提取属性并为其设置本地变量 当我使用打字稿输入设置 route 参数的类型时 我无法再访问 route 参数 如何访问 routeParams 中的属性 class Controller con
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • 如何检查令牌过期和注销用户?

    当用户单击注销按钮时 他 她可以自己注销 但是如果令牌过期 他 她就无法注销 因为在我的应用程序中 令牌在服务器端和前端都使用 当用户单击注销按钮时 如果令牌有效 则服务器和浏览器中的令牌都会被清除 当用户未注销并且他 她的令牌过期但未在浏
  • Selenium 查看鼠标/指针

    有什么方法可以在运行测试时真正看到硒鼠标吗 要么是 Windows 光标图像 要么是某种点或十字线或任何东西 我正在尝试使用拖放功能selenium and java in an HTML5Web 应用程序 并且能够看到光标以了解它实际在做
  • 页脚没有停留在底部

    这似乎是有史以来最令人困惑的问题 至少对我来说是这样 知道这个页面 除了标题之外 都已损坏 我复制了 HTML 并尝试小心地删除 WordPress 相关的爵士乐 以便您获得该页面的 html JsBin直播页面 http jsbin co
  • iOS Javascript 引擎 parseFloat(1) 返回负数

    这段代码将使错误出现 function causeBug d var k var n parseFloat 1 var c Math abs d if n lt 0 k else k return k n function for var
  • JavaScript - 替换 html 字符串中的特定单词索引

    我在 JS 字符串操作方面面临着一项具有挑战性的任务 有一个 HTML 字符串 我需要在其中替换特定单词索引处的单词 单词索引是忽略 HTML 标签时单词的编号 例如 下面是 HTML 字符串 span style font family
  • 使用 JavaScript 和 HTML 打印表情符号

    为什么这有效 p x1f604 p 而这并没有 document getElementById emoji innerHTML String fromCharCode parseInt 1f604 16 JS 术语中的 char 实际上是一
  • React 不适用于 Android 4.4.2 Web 视图浏览器

    React 在我的 Android 手机上不起作用 我不认为这是我的代码错误 因为即使我写的唯一内容是 p hello world p 它仍然没有显示 在 chrome 远程吊顶上查看后 这显示了 Map is not defined 以前
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b

随机推荐

  • 如何在 PHP、HTML 标签中回显 [重复]

    这个问题在这里已经有答案了 我在发帖之前经历过这个 如何在 PHP 中回显 HTML https stackoverflow com questions 1100354 easiest way to echo html in php 而我仍
  • SwiftUI:使列表项的剩余区域检测点击[重复]

    这个问题在这里已经有答案了 我的 macOS 应用程序上有一个基于自定义导航系统构建的导航侧边栏 要导航到我检测到的不同视图 onTapGesture列表项的 s 如下所示 List selection selection ForEach
  • 在 sscanf 中转义方括号 ]

    我想扫描像这样的行 25 28 gt 34 我写了一个小程序来测试一下 include
  • 循环遍历 Mongo Collection 并更新每个文档中的字段

    我在一个集合中有日期插入不正确 并且位于一个简单的集合中 2015 09 10 string format 我想更新它们以纠正ISO 日期格式 我尝试过循环 MongoforEach 但我对 shell 不太了解如何更新集合中的每个文档 到
  • FFMPEG-流媒体在几秒钟后停止

    你好 亲爱的社区 这就是我最近几天以来正在处理的事情 在ffmpeg社区进行彻底搜索后 我无法找到解决方案 我无法将本地 flv 流式传输到 facebookrtmp server 我正在运行以下命令将本地 flv 视频流式传输到rtmpF
  • lighttpd 上的 apache .htaccess 文件

    RewriteEngine on RewriteRule packed js pack php debug 0 nc RewriteRule debug pack php debug 1 nc 这在放置在特定目录中的 htaccess 文件
  • 我可以在 Eclipse 中自定义语法突出显示以不同方式显示八进制文字吗?

    我认为八进制文字是非常危险的事情 我希望每当我阅读源代码时它们都非常明显 在 Eclipse 中一定有办法做到这一点 对吗 那么看起来标准 Eclipse 无法配置来执行此操作 需要定制着色器吗 不可以 目前您只能在 首选项 gt Java
  • 68000 上的 CCR

    因此 一位也在尝试学习和理解该语言的朋友问了我一个汇编问题 他问 给定以下寄存器值 D0 364B 421E D1 F3FC 9066 执行指令后 cmp w D0 D1 CCR 中的结果值是多少 N Z V C 以及以下每个分支是否会发生
  • 如何设置 DatePicker 的样式?

    我下载了 WPFToolkit 源代码 因为我想覆盖 DatePicker 的默认通用模板 例如 我想覆盖这个文本框
  • Spring RestTemplate 使用自定义标头和请求对象进行 POST 请求

    在 Spring RestTemplate 中 有一种方法可以将自定义标头与 POST 请求对象一起发送 我已经尝试过exchange可用的方法 看来我们可以将键值对与自定义 标头一起发送 但不能将请求对象本身附加到HttpEntity 下
  • 如何创建SD卡以在Android Studio的模拟器中使用?

    我需要在Android Studio中将mp3文件下载到SD卡然后读取它们 首先 如何为我的模拟器创建SD卡 其次 如何向其中添加文件 我是初学者 因此欢迎逐步解释 安卓工作室3 1 1 1 创建模拟器 工具 gt AVD 管理器 并运行它
  • HTTP 脚本请求“已中止”状态

    什么可能导致我的应用程序上有时出现正常的外部脚本 在 Firebug 的 NET 面板中显示为 已中止 且未加载 这是服务器问题还是浏览器问题 这是 FireBug 中的一个错误 导致它回显噪声事件 中止是 HttpRequest 结束的正
  • 将 xlsb 文件的文件夹导入到 R 中

    我有一个 Excel XLSB 格式的每日报告文件夹 现在我尝试导入该文件夹中的所有文件并绑定到 R 中的一个数据框中 我有将多个 CSV 文件的文件夹导入到 R 中的经验 代码如下 library tidyverse setwd C Fo
  • 将 boost::json 静态库与 cmake 一起使用

    我有这个CMakeLists txt set Boost USE STATIC LIBS ON find package Boost REQUIRED COMPONENTS json include directories BOOST IN
  • C++ 常量引用生命周期(容器适配器)

    我的代码如下所示 class T class container const T first T second container const T first const T second class adapter T container
  • HighCharts 在栏上放置标签

    鉴于下图 我想从每列的图例中获取标签并将其打印在列本身上 我在 HighCharts API 中找不到任何可以让我执行此操作的内容 有人有我可以看的类似的想法或例子吗 谢谢你 EDIT 有一个更好的例子来说明我想要实现的目标 我认为这是很容
  • 谷歌地图在引导程序中的模态内显示为灰色

    我使用 Bootstrap v3 3 5 http getbootstrap com http getbootstrap com 版权所有 2011 2015 Twitter Inc 对于我的网站 我想添加谷歌地图 我运行此代码 所有地图都
  • 从扩展模板覆盖“包含”模板中的块

    我有以下内容 基本 html include header html div block content Default Content endblock div header html
  • RxJava中有类似Promise.all()的方法吗?

    我有个问题 我需要通过项目 ID 列表获取一些项目的列表 起初 我尝试过 Observable from itemIds flatMap itemId gt requestToServer itemId subscribe item gt
  • 使用 onload 事件异步加载 JavaScript 的缓存问题

    我目前正在尝试异步加载一些js文件 以便它们无法阻止网站的其余部分 我主要遵循这里的描述 异步Javascript http friendlybit com js lazy loading asyncronous javascript 就