2012-06-28 23 views
8

thể trùng lặp:
How to include js file in another js file?Làm cách nào để nhập/bao gồm tệp nguồn trong JavaScript?

Giả sử tôi có một vài file nguồn JavaScript: a.js, a1.js, và a2.js. Các chức năng của a.js gọi hàm từ a1.jsa2.js.

Bây giờ tôi phải khai báo tất cả các tệp này trong trang HTML của tôi. Tôi muốn khai báo chỉ a.js trong HTML và "nhập/bao gồm" a1.jsa2.js trong tệp nguồn a.js.

Có hợp lý không? Tôi có thể làm điều đó trong JavaScript không?

+1

Để làm điều đó bạn phải sử dụng một công cụ như [require.js] (http://requirejs.org/), hoặc ghép các tệp js của bạn (và rút gọn chúng trong cùng một động thái, ví dụ bằng cách sử dụng [trình biên dịch đóng cửa] (https://developers.google.com/ đóng/biên dịch /)). Bạn không thể chỉ định nhập khẩu trong vanilla javascript. –

+0

@devsundar tại sao bạn không yêu cầu gần như trùng lặp? –

+0

@dystroy Cảm ơn bạn đã đề xuất. Ban đầu tôi đang tìm kiếm một tùy chọn để đóng. Tôi đã làm nó ngay bây giờ bằng cách sử dụng tùy chọn "cờ". Nó không trực quan đối với tôi ... – 18bytes

Trả lời

8

Bạn không thể chỉ định nhập bằng javascript vanilla.

Vì vậy, giải pháp của bạn (không bao gồm khung máy chủ nặng bên) là:

  • chỉ cần làm hàng nhập khẩu

  • nối file js của bạn (và rút gọn chúng trong động thái tương tự, cho dụ bằng cách sử dụng closure compiler)

  • sử dụng một mô-đun itool thích require.js

Miễn là bạn không có kinh nghiệm và nếu số lượng tệp của bạn thấp (dưới 15), tôi khuyên bạn chỉ nên chọn giải pháp đầu tiên hoặc thứ hai. Sử dụng trình tải mô-đun có thể có các tác dụng phụ mà bạn không muốn gỡ lỗi khi bắt đầu tìm hiểu javascript.

2

Bạn có thể gộp các tệp JavaScript (và CSS) với nhau bằng cách sử dụng các công cụ nhất định để giảm số lượng tệp bạn phải đưa vào. Điều này cũng làm tăng hiệu suất tải trang.

Những công cụ này kết hợp nhiều tệp JavaScript vào một tệp JavaScript duy nhất (cũng tùy chọn thu nhỏ các tệp) và nhiều tệp CSS thành một tệp CSS duy nhất. Điều này dẫn đến kết nối HTTP ít hơn từ trình duyệt đến máy chủ, do đó, sẽ có ít thứ hơn để tìm nạp theo serially.

ASP.Net MVC 4 đã xây dựng-in hỗ trợ cho việc này:

http://theshravan.net/bundling-and-minification-support-in-asp-net-mvc-4/

Có một số giải pháp cho các môi trường khác cũng như Juicer.

Nếu bạn không thể gói tất cả các tài nguyên (có thể một số đến từ CDN trong khi một số khác được phục vụ cục bộ), bạn có thể sử dụng trình quản lý tải như require.js.

6

Bạn có thể nhập:

<script type="text/javascript"src="a1.js"></script> 
<script type="text/javascript"src="a2.js"></script> 
<script type="text/javascript"src="a3.js"></script> 

nếu bạn muốn làm điều đó trực tiếp từ JS, bạn có thể sử dụng Ajax, bài đăng này giải thích làm thế nào để: include-javascript-file-inside-javascript-file

+1

Điều này không giúp nhập một mô-đun cụ thể từ thư viện. – shinzou

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