iOS6 - Есть ли способ очистки кэшированных POST-запросов ajax для веб-приложения, добавленных на домашний экран?
Кэширование POST-запросов iOS6 ajax становится огромной проблемой для нашего веб-приложения. Большинство наших пользователей добавили приложение на домашний экран. С момента обновления большинство запросов POST к бэкэнду не работают, а данные устарели более 6 дней назад и считаются. Мы знаем о двух обходных путях для решения этой проблемы: один - изменить каждый запрос POST, чтобы он отличался, добавив к нему временную метку или некоторый случайный ввод, а второй - отключить кэширование на веб-сервере.
Оба обходных пути подробно описаны в следующем посте: Safari на iOS 6 кэширует результаты $.ajax?
Отключение кэширования на веб-сервере решило бы проблему, если бы оно было установлено до обновления iOS6 (или сразу после). Однако, похоже, что любые запросы POST, которые были сделаны после обновления и до того момента, когда мы отключили кэширование из приложений, добавленных на домашний экран, все еще кэшируются! и мы не можем найти способ их очистить. удаление приложения домашнего экрана и перезапуск устройства не делают этого! Единственный вариант, который у нас есть, - это изменить наш URL или добавить временную метку к каждому запросу в дополнение к отключению кэширования на веб-сервере.
Кто-нибудь знает способ очистки кэша приложений домашнего экрана, кроме восстановления на заводские? пожалуйста, предоставьте детали.
Предупреждение всем, кто реализовал обходной путь, добавив временную метку к своим запросам, не отключая кэширование на сервере. Если ваше приложение добавлено на домашний экран, КАЖДЫЙ пост-ответ теперь будет кэшироваться, и срок его действия не истечет. Если у кого-то нет способа очистить его, это выглядит как потенциальная утечка памяти!
1 ответ
По моему опыту, единственный способ решить эту проблему с кешем - воспользоваться подходом Google и добавить идентификатор URL для каждого запроса. Затем вы можете использовать mod_rewrite или другой такой движок для вашего сервера, чтобы сделать это прозрачным для ваших серверных скриптов.