2012-06-14 3 views
0

В настоящее время у меня есть сайт, на котором у меня примерно 20 отдельных страниц. На всех страницах есть две версии ... версия, в которой зритель еще не вошел в систему, вместе с зарегистрированной версией. Записанная версия может отличаться от версии без регистрации ... Мне было интересно, есть ли простой способ сказать браузерам «аннулировать» все кэшированные страницы для моего домена, когда пользователь входит в систему или выходит из системы.Отдельный кэш для зарегистрированных пользователей

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

Любые советы и приемы было бы супер полезно, я довольно новый в кэшировании ... спасибо :)

ответ

1

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

0

Посмотрите на Force browser to clear cache. Там есть кое-что.

В противном случае скажите своим пользователям, чтобы Shift-Click кнопка перезагрузки. ;-)

1

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

следующее единственное, что происходит со мной, чтобы делать то, что вы хотите, но это не очень ... если пользователь выполнил вход в систему, но запрашивает незарегистрированную страницу, истекает страница (например $ q-> header (-expires => 'now')) и отправить зарегистрированного пользователя на страницу без входа. но, как и выше, я сомневаюсь, что вы хотите это сделать. вы можете ссылаться на файл .js с js/ajax, который обнаруживает такой сценарий, а затем перенаправляет пользователя обратно на страницу входа.

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

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