2011-08-04 30 views
5

Tôi đang học cách sử dụng hệ thống thương mại điện tử Magento, tôi đang đọc tài liệu nhưng tôi không hiểu thuật ngữ nào, "thư viện JavaScript được biên dịch trước", chúng có ý nghĩa gì? mã được biên dịch?Thư viện được biên dịch JavaScript là gì?

Trình tải xuống web để nâng cấp và cài đặt Magento mà không cần sử dụng SSH (được bao gồm trong Chương 2). • js — Thư mục chính chứa tất cả mã JavaScript được cài đặt Magento. Chúng tôi sẽ tìm tất cả thư viện JavaScript được biên dịch trước tại đây.

nguồn: http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_s_base_structure

+0

Biên dịch trong trường hợp này có thể chỉ đơn giản có nghĩa là - đặt cùng nhau trước khi tay. – Oded

Trả lời

9

Tôi không biết những gì Magento thương mại điện tử sử dụng, nhưng tôi biết những gì JavaScript Trình biên dịch là.

JavaScript được biên dịch trước là không thực tế vì các trình thông dịch JavaScript khác nhau sẽ có phương pháp biên dịch riêng. Do đó, khi hầu hết mọi người nói về Biên dịch JavaScript, họ thường tham chiếu JavaScript được rút gọn.

Tuy nhiên, những người khai thác mới nhất đi xa hơn. Một ví dụ tốt là Google Closure CompilerAdvanced Mode. Nó có liên quan đến Google Closure Library and Tools, nhưng được thiết kế tốt ngay cả khi được sử dụng bởi chính nó.

Có một Online Demo of Closure Compiler.

Nó được gọi là Trình biên dịch vì nó nhiều hơn một trình chỉnh sửa và tên Trình biên dịch JavaScript không được sử dụng cho bất kỳ thứ gì khác. Ví dụ: Mã này

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

biên dịch sang alert("Hello, New user"); ở chế độ nâng cao. Các hàm sử dụng đơn được loại bỏ, các tên biến được rút ngắn và thậm chí được sử dụng lại.

Nó rất kỹ lưỡng. Chế độ đơn giản giả định rằng có thể có JavaScript khác có liên quan. trong trường hợp này, nó sẽ giữ chức năng hello. Chế độ nâng cao giả định rằng chỉ có một tệp JavaScript duy nhất hoặc được xuất đúng cách.

Điều duy nhất giữ cho điều này không thực sự được biên dịch là nó không phải bytecode như được biên dịch C hoặc Java. Nó vẫn phải được biên dịch vào thời gian chạy như Perl.

+1

Đồng ý, hầu hết có thể là "được biên dịch trước" thực sự có nghĩa là giảm thiểu hoặc làm xáo trộn. Bên cạnh Google Closure Compiler, có hàng chục công cụ khác như: uglifyJs, Yui Compressor, Packer & etc –

+0

Đúng, mặc dù định nghĩa chính thức về biên dịch (chuyển đổi mã nguồn từ một biểu mẫu sang dạng khác) không áp dụng. –

+0

** JavaScript biên dịch không tồn tại. ** Tuyên bố này không chính xác vì chúng tôi thấy rằng V8 thực sự biên dịch javascript xuống mã máy. http://en.wikipedia.org/wiki/V8_(JavaScript_engine) –

7

Magento có một tùy chọn cấu hình trong admin tại

System -> Configuration -> Developer -> JavaScript Settings 

tên Merged Javascript tập tin.

Khi cài đặt này được bật, Magento sẽ lấy tất cả tệp javascript mà nó biết, "biên dịch" chúng thành phiên bản được rút gọn thành kích thước tệp nhỏ hơn và sau đó kết hợp tất cả tệp javascript vào một tệp javascript duy nhất. Bằng cách này, thay vì mở nhiều kết nối mạng để tải xuống nhiều tệp, Magento sẽ mở một kết nối mạng duy nhất để mở một tệp.

Vì vậy, khi các tài liệu nói rằng thư mục chứa các phiên bản tiền biên dịch, nó có nghĩa là đó là nơi các tập tin javascript cá nhân được lưu trữ, và nơi các tập tin được tải từ khi Merged Javascript tập tin

Việc lập hạn đến từ Computer Science. Trình biên dịch lấy mã nguồn và chuyển đổi nó từ một ngôn ngữ sang một ngôn ngữ khác.

Theo truyền thống, nó có nghĩa là lấy mã từ ngôn ngữ cấp cao hơn (C, .NET, Java, v.v.) và chuyển nó thành mã máy (mã lắp ráp) được chip máy tính hiểu. Tuy nhiên, thuật ngữ này là chung chung và sử dụng hiện đại hơn bao gồm việc lấy mã nguồn được viết bằng một ngôn ngữ (Javascript) và biến nó thành một dạng khác (javascript được rút gọn).

Các vấn đề liên quan