Flex:浏览器刷新问题

时间:2009-11-18 12:46:22

标签: flex

我正在使用我的应用程序,它首次显示登录,并在成功验证后进入第二个屏幕。但是当浏览器通过F5或浏览器按钮刷新应用程序重新加载并显示第一个屏幕即登录屏幕时会出现问题。

如何避免这种情况,我的意思是无论浏览器重新加载当前的屏幕/组件应该保持不变(它不应该从头开始)。

作为一个例子,我有一个链接,我从这里采取这个例子&在我的代码中使用:   http://www.vipercreations.com/media/tutorials/login_system_with_flex_and_php/
  凭证:用户:测试和通过:测试

在这里,一旦你登录并按F5,你将返回到Ist屏幕,而不是停留在同一个屏幕上。

谢谢,硕

3 个答案:

答案 0 :(得分:2)

如果你的登录创建类似会话的东西,你可以通过FlashVars将同一个会话对象传递给应用程序。

当您的应用程序启动时,请测试会话是否已存在。如果存在,请对服务器进行验证。如果成功:您已登录,因此请跳过登录屏幕。否则:显示登录屏幕。

此外:这不是一个刷新问题,但归结为会话管理。我没有点击刷新按钮,也可以再次打开同一个网站,并且必须登录,这似乎很难。

答案 1 :(得分:0)

当然它会重新加载,不是重新加载的flash ..它的整个网页。或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>

答案 2 :(得分:0)

您可以通过ExternalInterface或共享对象将sessionID存储在cookie中。这样,您甚至可以添加过期日期,当然应该与会话的服务器端到期同步。

此外,您可以使用HistoryManager或BrowserManager在URL中编码应用程序的状态。如果你仔细设计状态,点击F5(或通过书签访问页面)将导致浏览器指向最后一个状态而不是开头。请记住验证会话。