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)">



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值