5

我正在学习如何使用Magento电子商务系统,并且正在阅读它的文档,但我不理解某个术语,即“预编译的 JavaScript 库”。他们是什么意思?如何编译 JavaScript 代码?

用于在不使用 SSH 的情况下升级和安装 Magento 的 Web 下载器(在第 2 章中介绍)。• js - 保存Magento 安装中包含的所有JavaScript 代码的核心文件夹。我们将在这里找到所有预编译的 JavaScript 库。

资料来源: http: //www.magentocommerce.com/wiki/2__-_magento_concepts_and_architecture/magento_s_base_structure

4

2 回答 2

10

我不知道 Magento 电子商务使用什么,但我知道 JavaScript 编译器是什么。

预编译的 JavaScript 并不实用,因为各种 JavaScript 解释器都有自己的编译方法。因此,当大多数人谈论编译 JavaScript 时,他们通常指的是 Minified JavaScript。

然而,最新的缩小器远远超出了。一个很好的例子是Google Closure Compiler Advanced Mode。它与Google Closure Library and Tools相关,但即使单独使用也设计得很好。

有一个Closure Compiler 的在线演示

它被称为编译器是因为它不仅仅是一个压缩器,而且 JavaScript 编译器这个名称不用于其他任何用途。例如:这段代码

function hello(name) {
  alert('Hello, ' + name);
}
hello('New user');

alert("Hello, New user");在高级模式下编译。一次性函数被删除,变量名被缩短,甚至被重复使用。

这是非常彻底的。简单模式假定可能涉及其他 JavaScript。在这种情况下,它将保留该hello功能。高级模式假定只有一个 JavaScript 文件,或者它已正确导出。

阻止它真正被编译的一件事是它不是像编译的 C 或 Java 那样的字节码。它仍然必须像 Perl 一样在运行时编译。

于 2011-08-04T18:48:18.260 回答
7

Magento 在管理员中有一个配置选项,位于

System -> Configuration -> Developer -> JavaScript Settings

命名为合并的 Javascript 文件

启用此设置后,Magento 将获取它知道的所有 javascript 文件,将它们“编译”为缩小版本以生成更小的文件大小,然后将所有 javascript 文件合并为一个 javascript 文件。这样,Magento 不会打开多个网络连接来下载多个文件,而是打开一个网络连接来打开一个文件。

因此,当文档说该文件夹包含预编译版本时,这意味着这是存储单个 javascript 文件的位置,以及在合并 Javascript 文件时加载文件的位置

术语编译来自计算机科学。编译器获取源代码,并将其从一种语言转换为另一种语言。

传统上,这意味着从更高级别的语言(C、.NET、Java 等)中获取代码,并将其转换为计算机芯片可以理解的机器代码(汇编代码)。但是,该术语是通用的,更现代的用法包括获取以一种语言(Javascript)编写的源代码并将其转换为不同的形式(缩小的 javascript)。

于 2011-08-04T19:03:30.393 回答