用Image对象在浏览器端缓存对象的发现

以前在页面里做动态按钮的时候,一定要将图片在客户端用Image对象缓存先,否则动态按钮效果就可能会因为网络状况而很差。

今天,偶尝试着也用Image对象在客户端缓存.wav声音文件,为客户端播放用。但是,在IE/Firefox上,它们都很聪明,发现是非图片格式的,它们都不会去load。开始以为它们是通过后缀名判断的,就把.wav文件改名为.bmp之类的,但还是不行,估计浏览器是去分析了文件头,发现不对,就不再继续读了,也就没有onload事件完成。

Safari倒是很笨的老老实实的load了下来,貌似后缀名是啥都无所谓,看来不会为Safari写太多的代码了。

好吧,在IE又尝试了不用new Image();而是document.createElement(‘BGSOUND’);用动态创建BGSOUND对象来预读声音文件。开始还以为没成功,后来才发现原来这个对象是没有onload事件触发的。再在通过一台由代理“缓慢”连接我的server的IE来试了一把,hoho,居然成功了。看来在IE上缓存声音文件也搞定了。

最后是Firefox,这个可能先不管吧,因为要在Firefox播放声音还要插件呀,PM不允许的,暂时先不管它了…

wingc

Read more posts by this author.