0

对于一个非常特殊的情况,我想将我从远程加载的 Dojo 类(即源)存储在 localStorage 中,以便在离线情况下访问它们(我们正在谈论一个混合移动应用程序)。我让一切都在运行,但 dojo.eval 不允许我从这样的字符串创建类

var data = 'define(["dojo/_base/kernel",...'; // class definition as string
dojo.eval(data);

知道如何做到这一点吗?

4

2 回答 2

0

如果您需要让您的应用离线运行,请将资源(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 文件的数量减少到一个或几个。

于 2013-10-10T12:54:52.940 回答
0

我终于完成了我想要完成的事情。但是,我发现无法使用 localStorage 并从字符串加载类。诀窍是使用 XHR 从远程加载 Dojo 类源文件,使用 Cordova File API 存储它,获取存储文件的 URL 并在 require() 中使用此 URL。做我想做的事,让我完全控制缓存的文件。

于 2013-10-10T23:50:47.383 回答