У меня странное (для меня) поведение относительно использования PHP session_destroy()
, используемого для выхода из системы, и JS localStorage
, используемого для предотвращения непрерывного запроса ajax к БД.
Итак.Мой текущий (и работающий) сценарий:
- В форме входа PHP делает
session_start()
-> браузер пишет куки с PHPSESSID
( нет localStorage
в данный момент ); - После входа в систему, ЕСЛИ
localStorage.getItem('myDataItem') === null
, данные запрашиваются один раз (ajax) и записываются с localStorage.setItem('myDataItem', 'Hi, I'm your ajax response')
.Если localStorage.getItem('myDataItem') !== null
не делать отметки;
Код:
if(localStorage.getItem('myDataItem') === null){
$.ajax({
url: 'ajax.php',
type:'post',
data:{request: 'dbInfo'}
}).done(function(jsonObjectResponse){
localStorage.setItem('myDataItem', JSON.stringify(jsonObjectResponse))
});
}
При выходе из кликающего элемента браузер запускает функцию с ajax-запросом, который выполняет PHP
session_destroy()
, выполняет JS
location.reload()
и перезапускается из формы входа;
Код:
$("#logout_element").on('click', function(){
$.ajax({
url: 'ajax.php',
type:'post',
data:{request: 'logout'} /*ajax PHP do a session_destroy()*/
})
.done(function(){
location.reload();
});
});
Пока что все (F5 / обновление) исправно, если бы не выход из системы / session_destroy ()
, localStorage исчезает
Моя цель
сохранить localStorage даже после session_destroy ()
Best,
Oscar