【问题标题】:Detecting browser closure from flex application从 flex 应用程序检测浏览器关闭
【发布时间】:2009-10-08 14:55:02
【问题描述】:

我需要在 flex 应用程序中检测浏览器/选项卡关闭,以便删除服务器中的会话信息。

我对 JavaScript 事件很熟悉,但如果 flex 中有用于应用程序卸载或类似事件的事件,我会在徘徊......

【问题讨论】:

标签: flash apache-flex session browser


【解决方案1】:

如果还没有回答,HTML DOM Window 对象的“关闭”属性:

'closed 属性返回一个布尔值,指定窗口是否已关闭。'

http://www.w3schools.com/htmldom/prop_win_closed.asp

您可以使用 externalInterface 从 Flex 调用 Javascript

【讨论】:

    【解决方案2】:

    遗憾的是,Flex/Flash 没有这样的活动。可能您能做的最好的事情就是让您的 flex 应用程序向服务器发送一些 keepalive,一旦服务器在给定的时间内没有收到该 keepalive,它就会假定 SWF 已关闭并删除会话信息。

    【讨论】:

      【解决方案3】:

      如答案 #1 所述,flash 无法检测到用户关闭浏览器/选项卡。但是,您可以使用 JavaScript 注册事件,然后向 Flex/Flash 发出信号。但是,此时您可能只想向服务器发出 JavaScript 异步请求以终止用户会话。请求不能保证完成,但如果服务器速度很快,通常会完成!

      【讨论】:

      • 您很可能没有时间在窗口关闭之前完全处理发送给 SWF 的 javascript 消息,因此它是不可靠的。因此,即使您实现了这一点,让服务器能够通过某种超时自行检测事物仍然很有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 2015-03-22
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多