2015-04-13 3 views
1

Я использую Kendo UI Mobile Framework и большую часть своих представлений обрабатывают как удаленные виды. Например, удаленный html-документ view1.html вместо встроенного элемента div #view1.Как принудительно обновить Cached Kendo UI Mobile Remote View

Все они прекрасно работают в браузере, однако я вижу некоторые проблемы, связанные с кэшированием этих удаленных просмотров:

  1. перегрузочного приложение на домашний экран после его закрытия не заставит содержимое веб-приложение, чтобы обновить/обновление (iOS сохранено на главном экране).
  2. Повторное создание веб-приложения для домашнего экрана не заставляет содержимое обновлять/обновлять даже после очистки веб-данных Safari (iOS сохранено на главном экране).

Кто-нибудь знает, как заставить приложение извлекать новые версии этих удаленных представлений при начальной загрузке приложения (один раз за сеанс), когда об этом заботятся за кулисами в мобильной библиотеке Kendo?

Я искал ApplicationCache, но это кажется довольно страшным для моего в основном динамического приложения с интенсивной базой данных. Кроме того, я не думаю, что мой веб-сервер (который запускается с задней стороны базы данных 4D может фактически обслуживать правильный тип mime для файлов appcache).

+0

Единственный способ, которым я это знаю, заключается в добавлении data-reload = "true" в определение представления, которое будет использоваться для перезагрузки с сервера каждый раз. http://docs.telerik.com/kendo-ui/api/javascript/mobile/ui/view#configuration-reload –

+0

Предполагаю, что я должен указать, что я предпочел бы это делать только за каждый сеанс. Я не против кэширования, но я бы хотел, чтобы каждый раз, когда они использовали приложение (особенно в автономном режиме на iOS), чтобы получить последние изменения. На самом деле во время развития это довольно боль. – btbJosh

ответ

1

Поскольку Кендо UI использует JQuery:

https://github.com/telerik/kendo-ui-core/blob/master/src/kendo.mobile.view.js#L660

вы, вероятно, может остановить кэш с глобальным $.ajaxSetup(), как это:

$.ajaxSetup({ 
    cache: false 
}); 

Просто убедитесь, что выключить его перед загрузкой любые другие данные, которые вам нужны.

+0

Спасибо, что посмотрели. Если я это сделаю, разве я не потеряю много преимуществ этой архитектуры удаленного вида SPA? Я не просто пытаюсь отключить кеширование ... Я пытаюсь гарантировать, что когда пользователь запустит приложение, они получат последние правильные файлы. К сожалению (я думаю, это и благословение, и проклятие), удаленные представления только лениво загружаются, поэтому это затрудняет подход к этой проблеме. Я думаю, что в конечном итоге проблема заключается в автономном поведении веб-приложений iOS, или что я не делаю, чтобы заставить его захватить последнее, когда действительно происходят изменения. – btbJosh

Смежные вопросы