додзе и кэш автономного приложения - PullRequest
1 голос
/ 07 апреля 2011

Мы работали над приложением JavaScript с поддержкой автономного режима, используя Dojo и возможности хранения и автономного режима, доступные в новых браузерах.

Приложение довольно большое, но, похоже, оно загружает файлы большего размера из кеша, и я вижу, что приложение на самом деле кэшируется. Мы использовали функции кэша приложений, и, насколько я и Chrome видим, в кэше приложений нет ошибок.

Однако мы сталкиваемся с проблемами. Очевидно, Dojo не может загружать свои ресурсы языка или файл SMD, описывающий службу, к которой мы подключаемся.

Эти проблемы хорошо видны на webkit-mobile, который является целевым браузером.

Есть идеи, что может быть не так?

Ответы [ 4 ]

2 голосов
/ 08 апреля 2011

Когда вы используете автономный режим (скорее всего, мобильный), в большинстве случаев вам также потребуется оптимизированная сборка. Вы действительно не хотите отключить несколько десятков файлов.

Я не думаю, что XHR работает в автономном режиме, поэтому любой ресурс, который вы загружаете через XHR (включая скрипты, пакеты i18n и другие динамически загружаемые ресурсы, запускаемые через href), следует хранить в localStorage, а затем разветвлять для загрузки из loaclStorage вместо XHR в автономном режиме.

Теперь вам действительно нужно оптимизировать сборку, если вы работаете на iPhone, iPad или Android-устройстве. Также подумайте об использовании Closure Compiler для дальнейшей оптимизации вашей сборки. См. Ссылку ниже.

http://dojo -toolkit.33424.n3.nabble.com / файл / n2636749 / Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf? По-пользователем = т

1 голос
/ 23 марта 2012

Вы видели эту статью в IBM ? Похоже, чтобы решить вопрос, который у вас есть.

1 голос
/ 10 апреля 2011

Проблема в том, что dojo выполняет несколько инициализационных XHR-запросов.Он выходит в Интернет, чтобы получить свой пакет локализации и любые файлы .smd для функции RPC.

XHR не может получить доступ к автономному applicationCache, даже если файлы комплекта и smd доступны там, их не будет найдено, когда Dojo запрашивает их.

Альтернативой является оставить их вне файла манифеста, но это означает, что dojo все равно не запустится в автономном режиме.

Мы исправили проблему с файлом .smd, добавив объект спецификации сервиса, расположенный вфайл .smd непосредственно в конструктор dojo.rpc.Service.Это означало, что у dojo было все, что ему нужно, и больше не нужно было его извлекать.

Пакеты локализации отличались.В конце я позаботился о том, чтобы они были добавлены в конец dojo.js, позволив операторам dojo.provide позаботиться обо всем остальном.По сути, я изменил скрипт сборки (файл bat для нас), чтобы после сборки поместить сжатый пакет локализации в конец dojo.js.

Теперь dojo может запускаться автономно.

0 голосов
/ 08 апреля 2011

Используете ли вы файл манифеста для кэша приложения HTML5 ? Если это так, вам нужно явно перечислить файлы и каталоги для кэширования. Как и все другие ресурсы, ваши встроенные пакеты локализации должны учитываться в вашем манифесте, либо в разделе CACHE, либо в разделе NETWORK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...