一个二进制的 Web 新世界

虫虫
 虫虫
发布于 2011年12月30日
收藏 18
作者:葵中剑

出于战略性原因,IE始终对 WebGL 有复杂的感 情。Apple,Google,Mozilla以及Opera都已经成为了WebGL工作组的成员,仅剩微软处境极为尴尬。支持WebGL意味着自己苦心 经营的DX被孤立在标准之外,不支持单独自立门户的话又是与标准为敌,更要被众多开发者唾弃,如今微软日渐势弱,对于是否在IE10上支持WebGL,对 于微软而言绝对将是一个“非常艰难的决定”。

然而就在这一系列关系还没理清之际,微软IE博客在12月1日发布了一篇 Working with Binary Data using Typed Arrays,显然IE10将确实地支持Type Arrays,加上之前已经支持的Chrome12以及Firefox7,三巨头无疑即将把整个Web推进二进制的新世界。(当然,国内自然是遥遥无期)

不过讽刺的是,Typed Arrays却是由WebGL定义引入的,随后被标准所采纳,包括FileAPI、XHR,甚至是Web Sockets都在考虑是否扩展以支持二进制数据的控制。可见微软的处境不仅仅是与一个WebGL这样的眼中钉为敌,更重要的是,不管愿意不愿意,它都可 能必须对标准所采纳的竞争对手的游戏规则低头。

那么什么是Typed Arrays?完整的定义可以在WebGL里找到,同名文档见 Typed Array Specification,而微软指向的文章是ECMAScript.org Wiki上的同名词条 Typed Arrays,我想应该不是每个人都有兴趣去浏览文档,所以我就翻译一部分概述内容:

  • 一种显式的缓冲区类型 ArrayBuffer 被引入。其以明确的长度创建,并且在其生命周期内都是固定长度。ArrayBuffer 中的内容不能被直接访问。
  • 同时引入一系列的类型用以描述如何解析 ArrayBuffer 中的字节。比如,Int32Array 将 ArrayBuffer(或其分区段) 中的字节看作 32位带符号整数解析。(译注:即以32bit signed integers作视图)
  • 同一个ArrayBuffer可以有多个不同的视图,以支持构建复杂的数据结构,尽管有一定的难度。
  • 引入 DataView 类型,用以对来自底层 ArrayBuffer的字节的基础数据类型的任意的索引读写。
  • 其目的是,在较小性能损失下,尽可能地做到原生字节的访问,并同时保证安全。

说了这么多,不如直接看微软给出的DEMO:Binary File Inspector,怎么说呢,看起来像UltraEdit的二进制视图。终于,JS可以读取二进制了!当然仅限于浏览器支持的文件,不过当前,这已经足够了。

相关的示例代码上面的链接里都有,我就不在冗述。有一点我想提一下,就是“在众多讨伐声中貌似已入暮年”的flash。

以前有人问我AS和JS主要能力上的区别的时候,我总是会把二进制读写放在很前面讲,并非因为读写二进制就似乎无所不能,而是因为这确实是它们间的 主要区别之一。flash.utils 包里的 ByteArray 与今天提到的 命题何其相似,甚至在读写二进制控制方面AS仍然略强于JS,然放眼现在的flash移动版失利的形势,各个方面flash都在被HTML5追赶。 flash虽然强虽然领先,但在标准之势下,也难挡众多蓄意或非蓄意的围攻。这样的情况也确确实实的发生在微软身上:

今天,微软你实现了源自WebGL而后标准化的 Typed Arrays。

明天,WebGL,微软你能说不么?

 

原文地址:http://www.swordair.com/blog/2011/12/742

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:一个二进制的 Web 新世界
加载中

最新评论(9

产品哥
产品哥
web GL 是个好东西。如果IE不支持,那么IE的份额在Window系统上将减少。Web GL的3D效果,制作简单的游戏绝对可以的,至少游戏玩家会玩游戏的时候会去习惯其他浏览器。
Nemesis_E
Nemesis_E

引用来自“clt”的评论

引用来自“Nemesis”的评论

flash 是太强大了
现如今如此强大的多核处理器 在它面前简简单单的就被打到了
谁见到这种情况都 得站出来反对flash 这么超前的技术 果然不适合现代 那是未来的技术 一定是的

虽然看起来如此,但也不得不说,很多as写的实在太烂了,才会让现代机器忙的不可开交。遇到的印象深的就是kaixin001了,游戏挺简单,CPU能用到一半,比很多复杂的flash游戏都费劲。开始以为是flash的问题,后来才知道是写的太烂了。

恩 自从flash10发布以后 我真的以为flash已经完全重写了 因为原来耗资源的网站都恢复正常了
但是仍然有很多 占100% cpu的 真是考研程序员水平啊
fengyqf
fengyqf
二进制,无法想象二进制的web世界是什么样子.....
clt
clt

引用来自“Nemesis”的评论

flash 是太强大了
现如今如此强大的多核处理器 在它面前简简单单的就被打到了
谁见到这种情况都 得站出来反对flash 这么超前的技术 果然不适合现代 那是未来的技术 一定是的

虽然看起来如此,但也不得不说,很多as写的实在太烂了,才会让现代机器忙的不可开交。遇到的印象深的就是kaixin001了,游戏挺简单,CPU能用到一半,比很多复杂的flash游戏都费劲。开始以为是flash的问题,后来才知道是写的太烂了。
Nemesis_E
Nemesis_E
flash 是太强大了
现如今如此强大的多核处理器 在它面前简简单单的就被打到了
谁见到这种情况都 得站出来反对flash 这么超前的技术 果然不适合现代 那是未来的技术 一定是的
wediolee
wediolee
垄断失败就这样。。。
sunny5156
sunny5156
微软扛不住了
返回顶部
顶部