2016-02-21 2 views
0

Я использую Alamofire Framework для HTTP-запросов в своем приложении. Хотя по стандарту URLCaching не включен, Alamofire устанавливает его по умолчанию.NSURLCache - Когда он истекает?

Кэширование

Кэширование обрабатывается на уровне рамочной системы по NSURLCache. https://github.com/Alamofire/Alamofire#caching

Я понимаю, что кэширование имеет важное значение для производительности (сетей, CPU и т.д.), но если кэширование не истекает через несколько минут, кэширование предотвращает приложение от проверки, было ли, если удаленное содержимое изменилось или нет.

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

Тогда мой вопрос в том, когда истекут кешированные данные? Будет ли это истекать?

ответ

1

Кэш истекает на основе HTTP-заголовка «Cache-Control», содержащегося в ответе на запрос.

NSURLSession использует NSURLCache для этого, и поскольку Alamofire использует NSURLSession под капотом, заголовок Cache-Control определяет время истечения.

+0

В соответствии с вашим ответом я искал «Cache-Control», и я снова искал результат ответа. Является ли «Keep-Alive» (это единственное поле в заголовке ответа, которое может быть связано с кешированием?), Определяющее тайм-аут кэширования в моем случае? –

+0

Посмотрите файл CacheTests.swift от Alamofire (https://github.com/Alamofire/Alamofire/blob/master/Tests/CacheTests.swift). В нем есть множество тестовых примеров, которые должны быть в состоянии объяснить, что именно делает кеширование. Что касается Keep-Alive, это указывает только на тайм-аут для базового TCP-соединения, используемого для выполнения HTTP-запросов. – caughtinflux

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