问题标签 [dynamic-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
948 浏览

c - 动态加载和后期绑定有什么异同?

来自维基百科:

动态加载是一种机制,计算机程序可以通过该机制在运行时将库(或其他二进制文件)加载到内存中,检索库中包含的函数和变量的地址,执行这些函数或访问这些变量,并卸载记忆中的图书馆。

后期绑定是一种计算机编程机制,其中在运行时按名称查找对象上调用的方法。


在我看来,

相似之处在于它们都是在运行时查找方法的机制。

不同之处在于动态加载在运行时加载库后不需要使用链接器,但后期绑定总是需要链接器。

我不确定我是否正确,尤其是差异部分。我想从你的分析中了解更多。

0 投票
2 回答
789 浏览

c# - 如何将实现细节正确地解耦到.net中的类库中

我想知道c#(甚至可能是cli)中是否有一种标准方法可以有效地将实现逻辑解耦为单独的类库/程序集,这些类库/程序集将由一个进程动态加载,该进程将基于一个公共接口对这些库执行操作。

更准确地说:假设我正在构建一个接收消息的服务,并将这些消息的处理委托给其他东西。就像是:

我希望该过程在运行时从某种配置加载类库。我假设这个库会有一些主类或类工厂,它们实现了一些接口部分,如下所示:

这一切都让人感觉有点像java beish,我需要做的就是让程序集中的一个类实现某种可注入接口,在应用程序配置中添加一行并免费获得大量东西。

0 投票
3 回答
1193 浏览

java - 动态加载 jar 并在其中执行任意代码

我有一个正在编写的 Java 控制台应用程序,我希望人们能够为它编写插件,然后将这些插件作为 jar 分发。我希望用户能够将插件(jar)放入“插件”文件夹,重新启动应用程序,并加载并运行插件。我不希望用户必须为插件或类似的东西指定一个类/方法来执行。

我可以将带有通配符类路径的 jar 加载到“插件”目录,但我需要一些方法让这些插件通过运行register()每个插件需要在某处定义的方法来向应用程序注册自己。插件(jar)如何指定register()定义它的方法的位置(包和类),以便我的应用程序知道调用它?

我意识到 OSGi 可以做到这一点,但这是一个相当小的应用程序,如果存在更简单的解决方案,我宁愿不使用 OSGi。

背景:

这些插件从他们想要处理的应用程序中注册事件。用户将能够在每个插件的基础上禁用特定事件的处理,因此这些插件的配置将存储在应用程序的数据库中。当插件注册自己时,应用程序将检查数据库以查看该插件是否存在配置,如果不存在,它将在数据库中为其创建新的默认配置。

0 投票
1 回答
49496 浏览

java - Java 中 System.load() 和 System.loadLibrary 的区别

javaSystem.load()和in有什么区别?System.loadLibrary()

我想加载一个库,但我不想添加环境变量的路径。这些中的任何一个都有帮助吗?

0 投票
1 回答
3168 浏览

javascript - ExtJS4 错误:未捕获的 Ext.Error:无法创建无法识别别名的实例:layout.border

这是使用 extjs4 的新动态加载功能的索引页面

在目录 /public/assets/test/app 中,有一个名为 Portal.js 的文件:

在 Chrome DevTool 中,错误如下:

在此处输入图像描述

0 投票
1 回答
3341 浏览

linker - 加载时间重定位和虚拟内存

我想知道在具有虚拟内存支持的系统上加载时重定位实际上意味着什么。我在想,在具有虚拟内存的系统中,每个可执行文件的地址都从零开始,并且在运行时地址将使用转换为物理地址页表。因此可执行文件可以加载到内存中的任何位置,而无需任何重定位。然而这篇关于共享库的文章提到链接器在可执行文件中指定了一个地址,可执行文件将被加载(入口点地址)。

http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/

还有很多关于动态链接的文章谈论绝对地址。我的理解错了吗?

0 投票
1 回答
220 浏览

c++ - 我可以从运行时加载的共享对象访问主机进程的符号吗?有什么选择吗?

在我的场景中,我想要一个插件,它是在运行时加载的共享对象,以访问来自“主机应用程序”的符号,以便我可以向我的应用程序添加任何功能。

我已经尝试过但没有找到任何方法来做到这一点,我不知道这是否可能。那么,我可以以某种方式做到这一点,还是有任何使用插件的应用程序使用的替代方法?

我在 Fedora 15、Linux 2.6.4 上。但是,我希望解决方案是跨平台的。

0 投票
2 回答
242 浏览

c - 从其他二进制文件加载符号

我对 C 和 C++ 编程相对缺乏经验,但是如果可以从共享库中加载和调用符号(据我所知,它们的编译和链接很像二进制文件),是否也可以从另一个 [executable] 二进制文件中加载符号在运行期间?

我对在 Linux 上使用 GCC 执行此操作特别感兴趣。

0 投票
2 回答
864 浏览

javascript - 从另一个脚本文件加载 JS 包含时如何执行成功回调

我有旧版 Web 应用程序的情况,我无法从 HTML 标记中的脚本标记加载jquery.min.js。所以我必须在另一个现有脚本文件中使用一些 js 加载它

问题是.. 当包含加载很慢时.. 有 jQuery 函数(也在页面上动态加载)尝试运行但找不到 jQuery

在 jquery.min.js 包含文件完成从 CDN 下载后,是否有一些跨浏览器方法可以在上述代码中调用 jQuery 就绪函数进行回调?谢谢,

编辑:

使用 Mike 的代码,除了 IE 8 或更早版本之外,几乎所有浏览器都可以使用onload .. 以及其他需要onreadystatechange的浏览器我猜

JSFIDDLE在这里:

http://jsfiddle.net/BmyGC/

0 投票
1 回答
202 浏览

haskell - Haskell 抽象语法表达式的动态加载

我们可以使用 GHC API 或其他东西来加载不是文本源模块,而是 AST 表达式,类似于haskell-src-extsExp类型?这样我们可以节省代码生成和解析的时间。