当前位置: 代码迷 >> Flash >> Flash/Flex解决IE缓存,socket不能断开连接有关问题
  详细解决方案

Flash/Flex解决IE缓存,socket不能断开连接有关问题

热度:3695   发布时间:2013-02-26 00:00:00.0
Flash/Flex解决IE缓存,socket不能断开连接问题

如果我们在做在flash的在线游戏时,一般是希望用户在刷新这个页面或者关闭这个页面就断开socket连接。

一般的浏览器在关闭后,都是默认的断开socket连接的。

但是刷新就不一定了。IE总是不太听话,在刷新时不会断开原来的连接。这样一来,一个IE的页面就保持了两个连接!

很容易造成数据的错误! 还有一些未知的异常,都是因为这该死的IE引起的。

网上大部分都说,加头信息之类的

<meta http-equiv="Expires" content="-1"/>        <meta http-equiv="PRAGMA" content="NO-CACHE"/>        <meta http-equiv="cache-control" content="NO-CACHE"/>

经测试,这个方法不管用!

还有的说是添加随机数。

在我们的连接后面加的Math.random()的一个参数。

这个方法也不行。


最后,打算在flex中找一个触发函数来自行关闭socket。

终于发现了这个事件

mx.events.FlexEvent.HIDE:当对象的状态从可见变为不可见时分派。


flex代码:就是在Application中添加一个hide的处理函数,关闭连接就行了。

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 			   xmlns:s="library://ns.adobe.com/flex/spark" 			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:compoents="compoents.*" creationComplete="init()" 			   hide="application1_hideHandler(event)">



  相关解决方案