对于一个非常特殊的情况,我想将我从远程加载的 Dojo 类(即源)存储在 localStorage 中,以便在离线情况下访问它们(我们正在谈论一个混合移动应用程序)。我让一切都在运行,但 dojo.eval 不允许我从这样的字符串创建类
var data = 'define(["dojo/_base/kernel",...'; // class definition as string
dojo.eval(data);
知道如何做到这一点吗?
对于一个非常特殊的情况,我想将我从远程加载的 Dojo 类(即源)存储在 localStorage 中,以便在离线情况下访问它们(我们正在谈论一个混合移动应用程序)。我让一切都在运行,但 dojo.eval 不允许我从这样的字符串创建类
var data = 'define(["dojo/_base/kernel",...'; // class definition as string
dojo.eval(data);
知道如何做到这一点吗?
如果您需要让您的应用离线运行,请将资源(css、图像、js)存储在应用清单中。清单文件如下所示。
{
"name": "My App",
"description": "My elevator pitch goes here",
"launch_path": "/",
"icons": {
"128": "/img/icon-128.png"
},
"developer": {
"name": "Your name or organization",
"url": "http://your-homepage-here.org"
},
"default_locale": "en"
}
您的应用程序可能需要数百个模块,因此为了清单的性能和可管理性,您需要创建一个Dojo 构建,这将根据您创建构建的方式将 js 文件的数量减少到一个或几个。
我终于完成了我想要完成的事情。但是,我发现无法使用 localStorage 并从字符串加载类。诀窍是使用 XHR 从远程加载 Dojo 类源文件,使用 Cordova File API 存储它,获取存储文件的 URL 并在 require() 中使用此 URL。做我想做的事,让我完全控制缓存的文件。