需要 js 删除定义以强制重新加载

2024-01-01

出于测试目的,我尝试删除一些 amd 模块并从服务器重新加载更新版本 - 目标是不刷新浏览器。

我目前正在执行以下操作,但浏览器仍然不会从网络重新加载项目。

var scripts = document.getElementsByTagName('script');
var context = require.s.contexts['_'];
for (var key in context.defined) {
  if(key.indexOf("tests")>-1){
  requirejs.undef(key);
  for (var i = scripts.length - 1; i >= 0; i--) {
  var script = scripts[i];
  var attr = script.getAttribute('data-requiremodule')
    if (attr === key){
    script.parentNode.removeChild(script);
    }
  }}

它从上下文中删除引用并成功删除脚本标签。 可惜...

有谁知道清除 requirejs 中所有引用的机制?

非常感谢任何帮助


我们目前正在尝试这个实现:

require.onResourceLoad = function(context, map)
{
    require.undef(map.name);
};

到目前为止还没有出现任何问题。

编辑:IE 不太关心这个修复。不过 Chrome 和 FF 都很好。

另外,您应该尝试在 PhpStorm 中进行实时编辑。奇迹般有效。可以看一个demohere http://www.youtube.com/watch?v=TnnVl3ydIB0。不过仅限 Chrome。

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

需要 js 删除定义以强制重新加载 的相关文章

  • 访问RequireJS路径配置

    我注意到文档中有一种方法将自定义配置传递到模块中 http requirejs org docs api html config moduleconfig requirejs config baseUrl js paths jquery l
  • 使用 Requirejs 在 Backbone 中预编译 Handlebars 模板?

    我一直在使用 require js 和车把模板 我已将 AMD 模块内容添加到车把 来摆弄一个backbone js 应用程序 并且刚刚读到预编译模板可以加快速度 我想知道如何将预编译模板包含在 requirejs 中 我有相当多的模板需要
  • 如何将 Assetic 用于 requireJs

    我正在尝试在 synfony2 项目中使用 require js 这是主树枝文件中的代码 文件vendor js require js已正确加载 但对于文件bundles web js main js我收到消息 未捕获的错误 模块加载超时
  • require.js:访问所有加载的模块

    有没有办法访问require js所有加载的模块 背景 我想自动调用init 我的 javascript 模块在全部加载后的功能 请参阅require js backbone js 如何构建具有初始化功能的模块 https stackove
  • YepNope 和 LabJS 的替代品 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想通过资源加载器加载 javascript 和 css 文件 我最初使用 LabJs 但我发现 Ye
  • SignalR 和 require.js 配置

    我正在合并SignalR进入我已经使用的项目需要 js处理我的脚本依赖项 我在确保 jquery signalR 1 1 2 加载后调用 signalr hubs 时遇到了一些麻烦 我已经让它工作了 但我想知道是否有更好的选择 这就是我所拥
  • 覆盖 require.js 中的 setTimeout

    我们在项目中使用 require js 我们需要重写设置超时时间在第 705 行 这是我们需要的代码以某种方式忽略 省略这个 setTimeout 根本 我的意思是运行它 问题是 如果我在更改版本时显式地在开源代码中更改它 代码将丢失 我应
  • 使用 Chrome 控制台通过 RequireJS 访问 Knockout ViewModel

    既然我正在使用 RequireJS 如何在 Chrome 控制台中访问 KnockOut ViewModel 变量 在使用 RequireJS 之前 我遵循命名空间模式 将所有内容隐藏在单个全局中 我可以通过在 Chrome 控制台中输入以
  • 使用 requirejs 和 r.js 优化器时无法加载 jQuery 插件

    我的 requirejs 优化器遇到了一些麻烦 运行优化器后 我在构建 编译文件中收到一些错误消息 在没有优化步骤的情况下运行我的网络应用程序时 我没有任何错误 这是我的 client js 文件 包含配置 coffeescript req
  • 了解何时以及如何使用 Require.JS

    我刚刚开始使用 Require JS 并且不太清楚应该使用它的适当情况 以及在这些情况下使用它的正确方法 以下是我目前使用 Require JS 进行设置的方式 我有两个功能 functionA and functionB 这两个功能都需要
  • RequireJS 中的命名模块与未命名模块

    我们可以通过给它命名来在 requireJS 中创建一个模块 define name dep function dep module definition 或者我们可以创建一个不包含名称的 define dep function dep m
  • 使用 requirejs 调用函数

    如何使用 requirejs 调用函数 这是一个过于简单的问题 但令人惊讶的是 到目前为止没有任何教程或示例能够帮助我 这是我的 html 文件中的代码
  • requireJS 与文件上传插件

    在requirejs中 我们可以通过以下方式设置js的名称 requirejs config paths jquery cdnjs cloudflare com ajax libs jquery 2 1 0 jquery min js 并将
  • 排除 requirejs 模块中所有以 x 开头的内容

    I am 编译 将一些文件放入一个 requirejs 模块中 我有这样的配置 paths lib lib angular lib angular modules name myApp exclude lib jquery lib angu
  • RequireJS 不遵循设置了 baseUrl 的 data-main 的相对路径

    使用 requireJS 我尝试为我的数据主指定一个与 baseUrl 不同的路径 看来 requireJS 会忽略我在文件名之前输入的任何内容 并始终在 baseUrl 文件夹中查找该文件 我有以下文件夹结构 index html scr
  • system.js可以替代require.js吗

    我在一个大型项目中使用 requirejs 该项目很快就会升级到 Angular2 Angular2 使用 system js 所以我也在考虑切换到 system js 我是否应该能够删除对 requirejs 库的引用并包含 system
  • 如何在 RequireJS 中模拟单元测试的依赖关系?

    我有一个要测试的 AMD 模块 但我想模拟它的依赖项 而不是加载实际的依赖项 我正在使用 requirejs 我的模块的代码如下所示 define hurp durp function Hurp Durp return foo functi
  • 使用 requirejs 加载外部脚本而无需访问配置

    我正在尝试在我正在编写的插件中加载数据表 javascript 库 问题是 当我加载外部资源时 我会遇到冲突 因为当我调用 require 时 数据表与某些内容发生冲突 这是错
  • Cordova 2.4.0 或 2.5.0 或 2.6.0 和 requirejs

    Cordova 2 4 0 及更高版本支持 AMD 加载到 javascript 中 我特别希望将 Cordova 2 5 0 与最新版本的 RequireJS backbone jquery jquery mobile 一起使用 我还没有
  • 加载 requireJS 和 Backbone 的多个实例

    我正在创建一个 google chrome 扩展 当在选项卡上激活时 它会将一些自定义代码和一些新视图加载到该窗口的文档中 我想使用 requireJS 加载扩展调用的这些新代码模块 但是 我担心如果调用此扩展的应用程序 网站已经在运行 r

随机推荐