2010-11-21 2 views
0

поэтому я вызываю функцию идентификации янтаря zend auth с помощью ajax, и если ajax возвращает true (то есть идентификатор очищается), я просто перезагружаю браузер через location.reload()проблема с кешем сайта при использовании скрипта выхода в zend auth

и то, что обычно происходит в том, что страница имеет следующее:

if ($this->auth->hasIdentity()) { 

    echo "Welcome"; 

} 

и

if (!$this->auth->hasIdentity()) { 

    echo "some login form"; 

} 

, но затем, так как страница кэшируется браузером .... даже если я ve вызвал сценарий выхода из системы через ajax (который очищает идентификатор) и перезагружает страницу, страница все еще отображает экран приветствия, так как считает, что страница не изменилась и поэтому просто отображает кеш, который содержит экран приветствия, а не логин когда он перезагружается ...

есть ли у вас возможность очистить кеш вручную или каким-то образом, используя jquery, чтобы он не просто загружал кеш при перезагрузке?

ответ

0

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

0

Моя рекомендация - не выполнять функцию выхода из системы Ajax. Просто сделайте это обычная ссылка как:/аутентификация/выход из системы/

Это действие должно сделать это:

public function logoutAction() { 
     $auth = Zend_Auth::getInstance(); 
     $auth->clearIdentity(); 
     $this->_redirect('/authentication/login'); 
} 

Это работает для меня, во всяком случае.

Я понимаю, что это не может быть идеальным ответом, но я бы все же бросил вызов необходимости, чтобы ссылка на выход была ajax.