【问题标题】:Why are javascript programs delivered in plain text?为什么 javascript 程序以纯文本形式提供?
【发布时间】:2009-12-24 20:12:41
【问题描述】:

为什么决定以纯文本形式发布 javascript 程序?是为了提高性能还是作者从未想过 javascript 会被用在更复杂的应用程序中,开发人员可能希望保护源代码?

【问题讨论】:

  • 您更喜欢什么替代方案?发送加密的js文件供浏览器解密?
  • 那么,为什么 HTML 是纯文本?为什么是 CSS? php?珀尔?编译所有内容可能会使其更快、更安全,但不会让 Web 开发变得更容易。
  • 编译不保护源代码。软件许可证保护源代码。

标签: javascript history language-history


【解决方案1】:

我认为部分原因是由于 HTML 本身是以纯文本形式传递给浏览器的,因此 JavaScript 也应该如此。这是网络的方式。

【讨论】:

  • -1。这不是一个答案,只是一个伪宗教声明(你可能也称它为主的方式或其他东西)。
【解决方案2】:

这是因为 JavaScript 从来不是为大型 Web 应用程序设计的,而是一种在浏览器上做一些“很酷”的事情的方式。 JavaScript 并不是一种非常流行的语言,并且在 AJAX 出现之前一直受到鄙视,这就是为什么从来没有太多关于 JavaScript 应该如何分发的见解。毕竟,将 JavaScript 发送到浏览器的最简单方法是通过常规文本文件,为什么在 1995 年他们还要为其他任何事情烦恼?

【讨论】:

  • 我猜我们有不同的使用 javascript 开发的经验。我已经在大型 Web 应用程序上使用它很长时间了。它可能被那些实际上不喜欢编写代码的人所鄙视。
  • 另外,最初互联网是为了共享简单的纯文本文档,所以将网页制作成简单的纯文本文档是有意义的。
【解决方案3】:

看看YUI;它将通过将变量、函数等的所有名称替换为 abc、...等内容来压缩 javascript 文件

它还将删除所有不必要的空格、换行符等。因此它会混淆 javascript 代码并减小其大小。

【讨论】:

  • 混淆是减少代码大小并使其极难阅读(或窃取)的好方法。但是维护起来很麻烦,所以最好使用一个混淆工具,这样你就不必那样编码了。
【解决方案4】:

文本是在任意一对计算机之间传输的一种数据形式,无需考虑计算机体系结构:字节序、字长、浮点二进制表示、负编码等。即使EBCDIC 计算机也能轻松处理 ASCII。

尽管任何二进制表示方案都可以克服这些绊脚石——正如 TCP/IP 内部所做的那样——这样做的代码使用起来并不完全愉快——甚至阅读也不愉快。经验是,即使是经验最丰富的工程师有时也会忘记使用所需的主机到网络或网络到主机的转换宏。

确实,许多主要传输数字信息的协议将值转换为 ASCII 符号进行传输,主要是因为其通用性。 (想到PCLANSI 3.64。)基于文本的传输得到了广泛的原生数字格式化程序和解析器的轻松支持,所有这些都倾向于得到很好的优化。此外,几乎每种编程语言都可以轻松支持文本编码的数字数据。对二进制格式数据的支持从足够痛苦不等。

【讨论】:

    【解决方案5】:

    保持纯文本的安全比保持二进制更容易(避免缓冲区溢出等)。它的入门成本较低。缩小和 gzipping 使其高效。 Web 开发更容易。我需要继续吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 2019-04-26
      • 2020-12-19
      相关资源
      最近更新 更多