Flash/Flex解决IE缓存,socket不能断开连接问题
发布时间:2020-12-15 18:18:39 所属栏目:百科 来源:网络整理
导读:如果我们在做在flash的在线游戏时,一般是希望用户在刷新这个页面或者关闭这个页面就断开socket连接。 一般的浏览器在关闭后,都是默认的断开socket连接的。 但是刷新就不一定了。IE总是不太听话,在刷新时不会断开原来的连接。这样一来,一个IE的页面就保持
如果我们在做在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)"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |