Requirejs 忽略可选依赖项的加载错误
Requirejs ignore loading error for optional dependency
我正在使用require.js,我加载了一个处理跟踪的库。 但是,我有一些用户阻止它加载。
由于它不是我的应用程序的关键部分,因此我希望即使我的跟踪库无法加载,一切也能正常工作。
我已经查看了通过 errbacks、配置回退和全局 onError 函数处理错误的文档。
我在想这样的事情:
requirejs.onError = function (err) {
var modules = err.requireModules;
for (var i = 0; i < modules.length; i++) {
if (modules[i] == 'tracking-lib') {
// Would be great if I could do something like define('modules[i]', [], null)
}
}
};
类似的问题(不能解决我的问题):
requireJS 可选依赖项
当 ajax 返回 404 时 RequireJS 中的空依赖项
我创建了一个可以延迟加载 AMD 模块的 Require 插件(GitHub 中的代码),例如:
define(["lazy!myModule"], function(myModule) {
myModule.get().then( // get() returns a promise
function(m) {
// handle success, module is in m argument
},
function(e) {
// handle error
}
);
});
您可以按原样使用它。或者,您可以创建一个类似的插件,例如 optional
,而不依赖于需求懒惰。optional
插件可以用作:
define(["optional!myModule"], function(myModule) {
// code as above
// or there may be a way to make optional! return null, if loading failed
我的插件中的代码可能会有所帮助,当然还有插件 API 的文档。
仍然是一种更简单 - 但恕我直言更脏 - 的方法可能是使用全局require
函数在客户端模块中require
可选模块:
define([], function() { // USE THE GLOBAL require!!!
require(["myOptionalModule"],
function(myOptionalModule) {
// loaded successfully
},
function(error) {
// load failed
}
);
});
(也看看这里 - 与最后一个代码有关)
总之,我认为没有办法选择性地使用纯 API 加载模块。您必须以某种方式自己实现它,并通过回调处理异步性,如上所述,无论是在应用程序代码中还是在插件中。
相关文章:
- jQuery:获取图像加载错误的详细信息
- Html抓取网站加载错误的J汤Java
- 这是 Opera 中的加载错误吗?
- 角度模块加载错误
- lightgallery type未加载错误图像
- 从URL获取JSON文件,XMLHttpRequest无法加载错误
- jQuery 加载错误的值
- Chrome 49 定时和使用 require.js 模块的加载错误
- 主干木偶:木偶.应用程序导致 Require.js 模块加载错误,“'错误:尚未为上下文加载模块名称'A
- 如何捕获 iframe 加载错误
- 间歇性要求JS加载错误
- JQuery Mobile - 关闭对话框后加载错误的页面,并且Javascript并不总是有效
- Android “SQLite 数据库无法从 /CachedGeoposition.db 加载”错误,尝试从 webvi
- Requirejs 忽略可选依赖项的加载错误
- EOF / 使用 AJAX 调用 PHP 文件时无法加载错误
- 为什么这个图像访问加载错误在承诺脚本小提琴上
- 浏览器加载错误仅具有特定文件路径 - 内部服务器错误 500
- 如何检测扩展中的页面加载错误
- Angularjs html5Mode(true) 页面重新加载错误与 Node.js 服务器
- “加载错误:未知”时尝试在 Javascript SDK 中删除 apprequest