flash中zip/unip的实际意图

搜索了一下在flash里面做zip/unzip。
发现了 FZip这个库,还有改进的 nodump库,这两个是开源的,还有一个提供编译后的 ASZip,当然还有一个 ZipArchive

最早也是使用最广的还是FZip。
而FZip有些限制,比如要在服务器端安装Python,然后使用作者提供的补丁,来给zip文件注入一个checknum才能实现对文件的解压缩,否则只能解一个无压缩的包或者是在已经提供底层实现的AIR内。

到此,看上去似乎觉得FZip用起来还挺烦。但我们回头考虑一下zip打包文件的动机是什么?我们是想减小文件的尺寸!
因为压缩文件自然就和减小文件联系到了一起。这种僵化的思维,让我差点觉得FZip的作者还真是粗糙,弄的这么麻烦就发布了......

后来我才想到,flash要调用的外部资源,差不多也就是图片(jpg,gif,png),视频(flv,swf),音乐(mp3)这些东西,而这些都是压缩过的文件,再打包也小不了多少。

那么打包意图是什么呢?减少对服务器的请求!

如果一个程序需要不断调用外部杂碎又繁多的资源,那对服务器就会是很大的负担。而用打包的形式,将这些负担转移到客户端来执行,就能很好的分担服务器的压力,而且如果是无压缩的包,解压缩的过程在客户端也不需要消耗很大的资源。

所以压缩带宽的意义反不如压缩请求来的实际。

这里就有个很不错的 demo

里面能看到的信息都是打包下载的,从这点看,打包还起到了一个挺重要的功能,就是组织文件、便于管理。


有人提醒说:“嘿,别忘了文本也是flash经常调用的外部资源,而且压缩起来效果很明显啊!”
那么我们想一下,一个网站使用大量静态文本的几率大么?

如果是基于大量文本的网站,很可能数据是后台程序动态生成的,那样的话传输上可以使用ByteArray.compress/descompress来实现压缩数据。

当然咯,我们还是希望有既好用又强大的类库啦~~~

你可能感兴趣的:(Flash)