首页 > 代码库 > Flex编码随笔
Flex编码随笔
1、CSS定义最好放在application里面。
2、数据源是数组数据时,最好把数组转换为ArrayCollection.
3、List、CheckBox等控件的HttpService Params传参处理:
var params:URLVariables = new URLVariables(); var ar:Array=new Array(); ar.push("www"); ar.push("eee"); params.users=ar;
出来的查询字符串是:
&users=www&users=eee
4、为了防止Flex的缓存清楚问题,可以再HttpService的回调函数最后调用HttpServiceObject.ClearResult()这是我从http://shanky.org/zh-CN/tag/httpservice/ 上得到的一个解决方案(下面的文章由于汉化原因,实际代码不可用)
其中一名与会者问我的问题,问题的Flex HTTPService和IE浏览器缓存。 我答应提供详细的解决这个问题,所以在这里:
问题 :重复HTTPService要求时,从软硬度(运行在一个实例的IE浏览器)许多倍最终没有外部的HTTP调用。 看来这些数据是从缓存。
原因是 : Flash播放器搭载在浏览器上进行的HTTP调用。 IE浏览器缓存的响应的HTTP GET要求和发生的相同的URL传回的响应缓存。
解决方案 :这个问题可以得到解决或者在服务器端或客户端。
服务器端的解决办法 :设置HTTP头的响应,以避免返回响应缓存。
在HTML : (在标题)
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="expires" CONTENT="0">
在PHP : (在脚本)
< /p>
标题( “缓存控制:无缓存,必须重新” ) ;
标题( “截止日期:星期一, 1997年7月26日5时00分00秒格林尼治标准时间” ) ;
在JSP中: (前书面向输出流)
response.setHeader ( “缓存控制” , “无缓存” ) ;
response.setDateHeader ( “到期” , 0 ) ;
客户端的解决办法 : ( 1 )的HTTP邮政电话-只的HTTP GET要求是从缓存或( 2 )确定的HTTP GET网址是不同的每一次。
( 1 )的HTTP后呼吁-
设置方法= “ post ”和呼吁妥善处理
( 2 )附加了一个独特的参数的HTTP GET要求,这样的网址是不同的每一次。 一种独特的时间戳记是一个很好的选择。
下面的代码示例,可以做的工作:
无功timeStampForNocache :日期=新的日期( ) ;
params.noCacheControlVar = timeStampForNocache.getTime ( ) 。 toString ( ) ;
我已命名的参数“ noCacheControlVar ” 。 您可以将它命名为任何您请。 这个名字并不重要。 要紧的是,时间戳使独特的HTTP GET的URL 。
5、界面初始化时的多HttpService结果数据如果之间有条件关系,那可以用事件响应链来解决这个问题。因为FLex是单线程,同步标志的方法可能不可行。
Flex编码随笔