RSL编译方式的FLEX站点出现#2046错误
2011-01-21 10:38
295 查看
flex站点不能打开了~~~~(>_<)~~~~ ,报#2046错误,在其他机器访问页是ok的,在清缓存、重装flashplayer一些折腾之后,还是 不行,最后在王同事的帮助下,找到了问题所在,原来是系统时间差远了去了,居然是2001年。当时为了loadrunner 支持500个 java Vuser,换了一个非常过期license,需要修改系统时间才可使用,google来一段。粘上
先简单解释下背景知识:
从FLEX4开始,所有web程序都默认使用RSL的编译方式。那用RSL编译的FLEX站点和普通FLEX站点有什么区别呢?简单的说就
是,flash
player会在你第一次访问任何一个这种FLEX站点时,缓存下大约1M的类库在系统里。下次用户访问这个站点或者任何其他flex站点时都不用再下载
类库这部分文件。RSL编译方式就是在编译时把类库都分离出去了。这种编译方式,在同类flash程序通常大小要接近1M的情况下,可以编出100K左右
的整站程序,比一张图片都小。好处自然是非常节省带宽和加载时间。我现在做的几个FLEX站点都采用这种编译方式,加上皮肤也采用全矢量绘图,编译出来的
整站程序都保持在100K左右,有效的解决了FLASH加载慢的最大问题。但问题出来了,有一小部分用户第一次访问站点时,总是出现无法缓存类库的问题,表现就是报错"ERROR:#2046"。或者有些用户原来能够
访问成功(说明已经成功缓存过类库了),但突然也开始报错了。直接导致的后果就是根本不能加载程序,想要节省加载时间反而导致不能加载,让我一直很苦恼。
从做第一个FLEX4程序开始,我就发现了这个问题,当时只有我的电脑不能访问我写的站点,而大家都能,并且我重装了系统几次,都不行。后来不知道怎么
的,我又突然就能访问了,就没有太在意这个问题。现在想想,那时候我干了一件他们都没干的事:我修改过系统时间。调整到2008年了。因为用户系统的时间早于缓存的类库的有效签名时
间,被flash
player拒绝加载了。困扰我很久的问题终于解决了,非常之高兴,遂写了个js脚本加在网页里,加载前先判断下服务器和客户机的时间差。如果太大就弹出提示。让用户把
时间改正确,或者就直接跳转到我准备好的无类库缓存版站点。我有给每个flex站点都加上这种无缓存的版本,供应急用。就是简单再写一个
full.html,把引用的程序改成对应的非RSL编译方式生成的swf即可。访问方法为:URL后加上full.html,使用上不会有任何差别。
那么RSL的问题算是完美解决了,顺便也把另一个问题解决了吧:在FLEX站点访问时,还会出现另一个问题,就是很多客户机的FLASH
PLAYER版本过低,导致FLEX程序不加载,表现为一片空白,不提示任何信息(只有没有安装FP时,浏览器才会自动提示)。这会让用户误以为站点不能
访问了。解决办法也是加上个JS脚本,判断一下FP的版本先。下面附上两个JS脚本,在IE/Firefox/chrome测试均完美通过。
相关文章推荐
- RSL编译方式的FLEX站点出现#2046错误
- RSL编译方式的FLEX站点出现#2046错误的解决办法
- RSL编译方式的FLEX站点出现#2046错误的解决办法
- RSL编译方式的FLEX站点出现#2046错误
- flex 1119错误 找不到属性 static 解决方法,编译选项中选中 不启用rsl
- 在2010以Release方式编译项目时出现的错误
- flex项目非RSL方式编译
- android studio 编译出现Instant Run requires 'tools|Android|Enable adb integration' to be enabled错误解决方式'
- 编译总帐弹性域出现APP-FND-00668错误
- asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法
- 在VS2010 下编译 cocos2d-x-2.1.4出现的两个...:VCEnd”已退出,代码为 4错误解决办法
- 编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code
- jre版本不同导致出现编译错误
- 用ant编译时出现“编码 UTF8 的不可映射字符“,这是因为编译的时候编码跟文件存储的编码方式不一样造成的
- 使用winsock2.h可能出现的两种编译错误
- 强制转换CSting为CHAR*时候出现错误的解决方式
- vs2005中编译包含多个项目的解决方案出现的错误
- VC编译出现“Internal error during IncrBuildImage”错误
- android studio 编译github下载的开源文件出现Android-maven错误
- 编译QT4.5.3中出现的错误