从服务器到客户端传输JavaScript和CSS的二进制文件是否可行?

5

我是网站开发领域的新手。

我看到JavaScript和CSS的缩小在减少网页加载时间方面被广泛使用。但毫无疑问,文本格式数据将比二进制格式更长,那么为什么我们仍然使用文本JavaScript和CSS呢?

在未来,有可能使用二进制格式来传递表示和行为定义吗?

我认为,如果有一个通用标准来以二进制数据传递这些内容,那么服务器端程序将被创建来将由Web设计师生成的文本格式JS/CSS转换为二进制格式,并且网络流量将大大减少。

有人能给我一些关于这个问题的想法吗?


1
有没有任何文章支持你的说法,即二进制比缩小和压缩更好? - Joseph
1
@Joseph 你好 Joseph,我做了一个假设:如果我们想传达相同的信息“true”,我们可能会在文本文件中写入“1”。如果文本文件被编码为ANSI,它将占用1个字节,而在二进制文件中仅占用一个单独的位1。我找到了一个与此话题相关的网帖:http://bytes.com/topic/net/answers/86383-q-text-vs-binary-files。 - pinocchio
在你将互联网变成一个大型的C程序之前,最好了解一下它的历史,了解HTML最初的用途以及为什么它是文本格式(提示:他们称网页为“HTML文档”)。请参阅http://en.wikipedia.org/wiki/Hypertext_Markup_Language。 - Joseph
@pinocchio,二进制格式仅在传输文件时有用,以最小化通过缓慢的链接传输的字节数。Gzip非常擅长此项工作,直接使用二进制格式与gzipped文本格式相比可能没有太大的优势。在您的示例中,如果文件中只有一个字母“1”,则gzip将其压缩为1位;实际上,如果文件中所有重复的数字都需要64个字节来存储(在二进制格式中需要64个字节),则gzip仍然只需要1位。 - Stephen Chung
尝试一些实验,你会发现文本格式的gzip通常不比相同表示的紧凑二进制格式大多少。 - Stephen Chung
@Stephen Chung,我明白你的意思了。那么,我以后肯定要更深入地研究一下Gzip。感谢你的解释。 - pinocchio
3个回答

4

谢谢你提供的链接,但我没有找到任何与我的问题相关的内容。我只是想知道是否有可能将当前的文本格式js和css更改为二进制格式。我了解一些Gzip的知识,但gzip所做的只是压缩,js仍然是“TEXT” js,css仍然是“TEXT” css。使用“BINARY” js和“BINARY” css会更好吗? - pinocchio

3
可行性为零。这需要存在一个通用的二进制JavaScript和CSS标准,被所有浏览器和与二者周边有关技术所理解。
但目前并不存在这样的标准。

1
是的,我看目前还没有这样的标准。但是有没有可能出现这种通用标准呢? - pinocchio
2
@pinocchio 微不足道但非零。似乎没有任何需求。这种东西会被摩尔定律所超越。它将提供微小的好处,代价是大量协作工程,这本身就是一个极其困难的壮举,并且将被网络带宽的普遍加倍所消灭。您还应该记住缓存的影响。简而言之,我会说概率微乎其微。 - user207421

0

有趣的是,在你的问题中没有提到HTML的二进制版本。

一年前,W3C发布了EXI,这是一个用于二进制XML的规范。您可以使用XML来表示HTML文档,因此已经可以以符合标准的方式将HTML表示为二进制(但是,浏览器尚未支持此功能)。

CSS是一种非常规则的格式,因此为其创建二进制格式并不难。相反,标准化该格式则很难。 (您可能会对此感兴趣。)

也许在未来,人们将使用像SLIMSASS这样的抽象语言编写所有代码,然后将其编译为二进制XML,从而允许浏览器使用一个非常快速和高效的接口来解析标记和样式。


正如其他人所指出的那样,目前很少有人花费精力开发更有效的数据传输Web标准。目前的共识是,二进制格式会使事情变得更加复杂(将不再能够直接编辑数据),并且不会比gzip压缩更多地减小文件大小,而且由于光纤的引入,进一步减小文件大小也不是必要的。
* gzip是一种通用的压缩程序,比任何特定领域的二进制格式都更广泛地使用,因此经过了更全面的测试和支持。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接