Flex: проблема обновления браузера - PullRequest
0 голосов
/ 18 ноября 2009

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

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

В качестве примера у меня есть ссылка, откуда я взял этот пример и использует в своем коде: http://www.vipercreations.com/media/tutorials/login_system_with_flex_and_php/
учетные данные: пользователь: тестирование и прохождение: тест

Здесь, когда вы вошли в систему и нажали F5, вы вернетесь к первому экрану, а не останетесь на том же экране.

Спасибо, Шо

Ответы [ 3 ]

2 голосов
/ 18 ноября 2009

Если ваш логин создает что-то вроде сеанса, вы можете передать этот же объект сеанса в приложение через FlashVars.

Когда ваше приложение запускается, проверьте, существует ли уже сессия. Если существует, проверьте его на сервере. В случае успеха: вы вошли в систему, поэтому пропустите экран входа в систему. В противном случае: показать экран входа в систему.

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

0 голосов
/ 18 ноября 2009

Вы можете сохранить sessionID в файле cookie через ExternalInterface или в общем объекте. Таким образом, вы даже можете добавить дату окончания срока действия, которая, конечно, должна синхронизироваться с истечением срока действия сеанса на стороне сервера.

Кроме того, вы можете использовать HistoryManager или BrowserManager для кодирования состояний приложения в URL-адресе. Если вы тщательно продумываете состояния, нажатие клавиши F5 (или доступ к странице через закладки) приведет браузер к последнему состоянию, а не к началу. Просто не забудьте подтвердить сеанс.

0 голосов
/ 18 ноября 2009

Конечно, он будет перезагружен, это не флэш, который перезагружается .. это вся веб-страница. или файл HTML.

У меня есть этот код для отключения F5 или обновления

<script>
window.history.forward(1);
document.attachEvent("onkeydown", my_onkeydown_handler);
function my_onkeydown_handler()
{
switch (event.keyCode)
{

case 116 : // 'F5'
event.returnValue = false;
event.keyCode = 0;
window.status = "We have disabled F5";
break;
}
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...