dojo和脱机应用程序缓存

我们一直致力于使用Dojo以及新浏览器中提供的存储和脱机功能实现脱机JavaScript应用程序。 应用程序非常大,但似乎从缓存中加载了较大的文件,我可以看到该应用程序是缓存的。正在使用applicationcache功能,并且我和Chrome可以看到应用程序缓存中没有错误。 但是我们遇到了问题。显然Dojo无法加载其语言资源,也无法加载描述我们连接的服务的SMD文件。 这些问题在webkit-mobile上非常明显,webkit-mobile是目标浏览器。 什么想法可能是错的?     
已邀请:
当您使用离线(很可能是移动设备)时,大多数情况下您也需要优化版本。你真的不想离线几十个文件。 我不认为XHR是脱机工作的,所以你通过XHR加载的任何资源(包括脚本,i18n包和通过href触发的其他动态加载的资源)你应该存储到localStorage,然后分支从loaclStorage加载脱机时的XHR 现在,如果您在iPhone,iPad或Android设备上运行,您确实需要进行优化构建。还可以考虑使用Closure Compiler来进一步优化您的构建。见下面的链接。 http://dojo-toolkit.33424.n3.nabble.com/file/n2636749/Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf?by-user=t     
问题是dojo做了一些初始化的XHR请求。它上线获取其本地化包和RPC功能的任何.smd文件。 XHR无法访问脱机applicationCache,即使bundle和smd文件是可用的,当Dojo请求它们时也不会找到它们。 另一种方法是将它们留在清单文件之外,但这意味着dojo不会开始脱机。 我们通过将位于.smd文件中的服务规范对象直接添加到dojo.rpc.Service的构造函数来修复.smd文件的问题。这意味着dojo拥有它所需要的一切,不再需要获取它。 本地化捆绑是不同的。最后,我确保将它们附加到dojo.js的末尾,让dojo.provide语句处理其余部分。从本质上讲,我修改了构建脚本(我们的bat文件),然后将压缩的本地化包放在dojo.js的末尾。 现在dojo可以脱机启动。     
你在IBM看过这篇文章吗?它似乎涵盖了你的问题。     
您是否将清单文件用于HTML5应用程序缓存?如果是这样,您需要明确列出要缓存的文件和目录。与所有其他资源一样,您的内置本地化包必须在清单中进行说明,无论是在CACHE部分还是在NETWORK部分中     

要回复问题请先登录注册