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"
}

アプリには何百ものモジュールが必要になる可能性があるため、マニフェストのパフォーマンスと管理性のために、ビルドの作成方法に応じて js ファイルの数を 1 つまたは 2 つに減らすDojo ビルドを作成する必要があります。

于 2013-10-10T12:54:52.940 に答える
0

やろうとしていたことを、ようやく実現することができました。しかし、localStorage を使用して文字列からクラスをロードする方法が見つかりませんでした。その秘訣は、XHR を使用してリモートから Dojo クラスのソース ファイルをロードし、Cordova ファイル API を使用して保存し、保存されたファイルへの URL を取得して、require() でこの URL を使用することです。必要なことを実行し、キャッシュされたファイルを完全に制御できます。

于 2013-10-10T23:50:47.383 に答える