as3中ProgressEvent的bytesTotal始终为0

简介: 遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大(Infinity) evt.

遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大(Infinity)

evt.bytesLoaded / evt.bytesTotal  <==> evt.bytesLoaded  / 0

 

在网上搜索了一下,有以下三种情况导致bytesTotal始终为0:

1、如果将进度事件调度/附加到某个 Socket 对象,则 bytesTotal 将始终为 0,参考ProgressEvent的事件对象>>

2、从php里动态加载内容导致的bytesLoaded始终为0,解决方案>>

3、web服务器开启gzip导致的,参考地址>>

 

因开发环境是在Windows下,而web服务器使用的是nginx,然后查看了一下nginx.conf的配置,发现gzip是开启的,但只是对以下的文件类型才进行压缩

gzip_types       text/plain application/x-javascript text/css application/xml image/jpeg image/gif image/png;

而swf的文件类型应该是application/x-shockwave-flash,即使如此依然不行。

 

然后清空了缓存再试,起作用了,无穷大不再存在了。

而为何开启gzip会影响到swf获取byteTotal呢?nginx并未对swf文件作特殊的处理啊!

 

我用httpwatch抓取swf的下载,发现其http header在gzip开启的情况下还是有的,这种现象很难解释了,gzip对swf的加载起到了什么影响?难道正如那篇文章所讲的,返回的http header里没有Content-Length属性?而我抓到的却是有的…

 

不管怎么样,问题是解决了,可是疑惑却加重了…

目录
相关文章
|
8天前
Everything-一切尽在掌握之中
Everything-一切尽在掌握之中
|
2月前
|
算法 中间件 测试技术
思考力:如何更好地做出判断
思考力:如何更好地做出判断
|
Java C语言
练习4—寻求特定值
练习4—寻求特定值
|
定位技术
使用定位技术,边界判断要谨慎
使用定位技术,边界判断要谨慎
103 0
值得注意的IsHitTestVisible
原文:值得注意的IsHitTestVisible 这个属性我们平时可能并不怎么用.先来看下MSDN上的解释: 解释的非常专业,然而我并没有看懂. 说说我的理解吧:把这个属性设置为false,看起来没有变化,但操作上已经把他完全忽视了,不触发事件,可以直接点到它下面的东西.
850 0
|
jenkins 应用服务中间件 持续交付

热门文章

最新文章