zoukankan      html  css  js  c++  java
  • as3中ProgressEvent的bytesTotal始终为0

    遇到很奇怪的问题,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属性?而我抓到的却是有的…

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

  • 相关阅读:
    Leetcode 83. Remove Duplicates from Sorted List
    Leetcode 61. Rotate List
    Leetcode 24. Swap Nodes in Pairs
    增强式学习
    散布矩阵
    特征选择
    CouchDB
    echarts和matplotlib
    特征缩放
    K-means、SLC、EM
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/1956881.html
Copyright © 2011-2022 走看看