Методы кэширования Appcelerator.Отзыв хотел! - PullRequest
0 голосов
/ 30 марта 2011

Версия Titanium SDK: 1.6.1 Версия iPhone SDK: 4.2

Я пытаюсь создать решение для кэширования вызовов JSON.Я сделал первую попытку, которая делает эту работу, но есть ли лучшее решение?Я использую текстовые файлы для сохранения вывода в формате JSON, это нормально для производительности?

http://pastie.org/1734763

Благодарен за все отзывы!

1 Ответ

1 голос
/ 30 марта 2011

Я думаю, что все будет в порядке. Пока файлы не массивны по количеству / размеру, они должны работать довольно хорошо.

Другой подход, который вы можете попробовать, если решите, что вы недовольны производительностью или хотите сохранить меньше кода, - это использовать хранилище приложений, которое сохраняет данные после сеансов приложений.

Titanium.App.setString('jsonResponse', this.responseText);
Titanium.App.setInt('expires', this.responseText.expires);

Затем, прежде чем сделать запрос, вы можете проверить, действительно ли кеш устарел:

var expires = Titanium.App.getInt('expires');

// Get the current time in milliseconds, etc.

if(expires > current_time) {
    // Cache is still valid
    var response = Titanium.App.getString('jsonResponse');
    var obj = JSON.parse(response);
}
else {
    // Cache is stale - query for new data
}
...