Hướng dẫn how to link a javascript file to another javascript file - cách liên kết một tệp javascript với một tệp javascript khác
Các phiên bản cũ của JavaScript không có nhập khẩu, bao gồm hoặc yêu cầu, vì vậy nhiều cách tiếp cận khác nhau đối với vấn đề này đã được phát triển. Show
Nhưng kể từ năm 2015 (ES6), JavaScript đã có tiêu chuẩn mô -đun ES6 để nhập các mô -đun vào Node.js, cũng được hỗ trợ bởi hầu hết các trình duyệt hiện đại. Để tương thích với các trình duyệt cũ hơn, các công cụ xây dựng như webpack và rollup và/hoặc các công cụ chuyển đổi như Babel có thể được sử dụng. Mô -đun ES6Các mô -đun ECMAScript (ES6) đã được hỗ trợ trong Node.js kể từ v8.5, với cờ 7 và vì ít nhất là Node.js v13.8.0 mà không có cờ. Để kích hoạt "ESM" (so với hệ thống mô-đun theo kiểu CommonJS trước đây của Node.js ["CJS"]) bạn sử dụng 8 trong 9 hoặc cung cấp cho các tệp tiện ích mở rộng 0. (Tương tự, các mô -đun được viết bằng mô -đun CJS trước đây của Node.js có thể được đặt tên 1 nếu mặc định của bạn là ESM.)Sử dụng 9:
Sau đó 3:
Sau đó 4:
Sử dụng 0, bạn sẽ có 6:
Sau đó 7:
Mô -đun Ecmascript trong trình duyệtCác trình duyệt đã hỗ trợ trực tiếp cho việc tải các mô -đun Ecmascript (không cần công cụ như webpack) kể từ Safari 10.1, Chrome 61, Firefox 60 và Edge 16. Kiểm tra hỗ trợ hiện tại tại Caniuse. Không cần phải sử dụng tiện ích mở rộng 0 của Node.js; Các trình duyệt hoàn toàn bỏ qua các phần mở rộng tệp trên các mô -đun/tập lệnh.
Đọc thêm tại https://jakearchibald.com/2017/es-modules-in-binder/ Nhập khẩu động trong trình duyệtNhập khẩu động cho phép tập lệnh tải các tập lệnh khác khi cần:
Đọc thêm tại https://developers.google.com/web/updates/2017/11/dynamic-import Node.js yêu cầuKiểu mô -đun CJS cũ hơn, vẫn được sử dụng rộng rãi trong Node.js, là hệ thống ________ 29/________ 30.
Có nhiều cách khác để JavaScript bao gồm nội dung JavaScript bên ngoài trong các trình duyệt không yêu cầu tiền xử lý. Tải ajaxBạn có thể tải một tập lệnh bổ sung với cuộc gọi AJAX và sau đó sử dụng 1 để chạy nó. Đây là cách đơn giản nhất, nhưng nó được giới hạn trong miền của bạn vì mô hình bảo mật hộp cát JavaScript. Sử dụng 1 cũng mở ra cánh cửa cho các vấn đề về lỗi, hack và bảo mật.Tìm nạp tảiGiống như nhập Dynamic, bạn có thể tải một hoặc nhiều tập lệnh với cuộc gọi 3 bằng cách sử dụng lời hứa để kiểm soát thứ tự thực thi cho các phụ thuộc tập lệnh bằng thư viện tiêm tìm nạp: 0tải jqueryThư viện JQuery cung cấp chức năng tải trong một dòng: 1Tải tập lệnh độngBạn có thể thêm một thẻ tập lệnh với URL tập lệnh vào HTML. Để tránh chi phí của jQuery, đây là một giải pháp lý tưởng. Kịch bản thậm chí có thể nằm trên một máy chủ khác. Hơn nữa, trình duyệt đánh giá mã. Thẻ 4 có thể được đưa vào trang web 5 hoặc được chèn ngay trước khi đóng thẻ 6.Đây là một ví dụ về cách thức này có thể hoạt động: 2Hàm này sẽ thêm thẻ 4 mới vào phần cuối của phần đầu của trang, trong đó thuộc tính 8 được đặt thành URL được trao cho hàm là tham số đầu tiên.Cả hai giải pháp này đều được thảo luận và minh họa trong JavaScript Madness: tải tập lệnh động. Phát hiện khi tập lệnh đã được thực thiBây giờ, có một vấn đề lớn mà bạn phải biết. Làm điều đó ngụ ý rằng bạn tải mã từ xa. Các trình duyệt web hiện đại sẽ tải tệp và tiếp tục thực hiện tập lệnh hiện tại của bạn vì chúng tải mọi thứ không đồng bộ để cải thiện hiệu suất. (Điều này áp dụng cho cả phương thức jQuery và phương thức tải tập lệnh động thủ công.) Điều đó có nghĩa là nếu bạn sử dụng các thủ thuật này trực tiếp, bạn sẽ không thể sử dụng mã mới được tải của mình theo dòng tiếp theo sau khi bạn yêu cầu nó được tải, bởi vì nó sẽ vẫn đang tải. Ví dụ: 9 chứa 0: 3Sau đó, bạn tải lại trang nhấn F5. Và nó hoạt động! Gây nhầm lẫn... Vậy giờ làm gì với nó ? Chà, bạn có thể sử dụng bản hack mà tác giả đề xuất trong liên kết tôi đã cung cấp cho bạn. Tóm lại, đối với những người vội vàng, anh ta sử dụng một sự kiện để chạy chức năng gọi lại khi tập lệnh được tải. Vì vậy, bạn có thể đặt tất cả các mã bằng thư viện từ xa trong hàm gọi lại. Ví dụ: 4Sau đó, bạn viết mã bạn muốn sử dụng sau khi tập lệnh được tải trong hàm Lambda: 5Sau đó, bạn chạy tất cả những thứ đó: 6Lưu ý rằng tập lệnh có thể thực thi sau khi DOM đã tải, hoặc trước đó, tùy thuộc vào trình duyệt và liệu bạn có bao gồm dòng 1 hay không. Có một bài viết tuyệt vời về tải JavaScript nói chung thảo luận về điều này.Mã nguồn hợp nhất/tiền xử lýNhư đã đề cập ở đầu câu trả lời này, nhiều nhà phát triển sử dụng (các) công cụ Build/Transpilation như Bưu kiện, Webpack hoặc Babel trong các dự án của họ, cho phép họ sử dụng cú pháp JavaScript sắp tới, cung cấp khả năng tương thích ngược cho trình duyệt cũ hơn, kết hợp các tệp, Minify, Thực hiện phân tách mã, v.v. Làm cách nào để liên kết với một tệp JavaScript khác?Chúng tôi có thể bao gồm một tệp JavaScript trong một tệp JavaScript khác bằng hệ thống mô -đun ES6 gốc. Điều này cho phép chúng tôi chia sẻ mã giữa các tệp JavaScript khác nhau và đạt được mô -đun trong mã. Có nhiều cách khác để bao gồm một tệp JS như Node JS yêu cầu, hàm getcript của JQuery và tải nạp.using the native ES6 module system. This allows us to share code between different JavaScript files and achieve modularity in the code. There are other ways to include a JS file like Node JS require, jQuery's getScript function, and Fetch Loading.
Làm cách nào để kết hợp nhiều tệp JavaScript thành một?Sử dụng một Bundler JavaScript để kết hợp nhiều tập lệnh nhỏ hơn vào tệp tùy chỉnh trên mỗi trang.Điều này phức tạp hơn, nhưng cho phép bạn sử dụng lại mã và có một công cụ sao chép mã cho bạn.Động lực yêu cầu các tập lệnh trong khi trang đang tải.. This is more complicated, but allows you to reuse code, and have a tool replicate the code for you. Dynamically require the scripts while the page is loading.
Tôi có thể sử dụng chức năng JavaScript từ một tệp khác không?Miễn là cả hai được tham chiếu bởi trang web, có.Bạn chỉ cần gọi các chức năng như thể chúng nằm trong cùng một tệp JS.. You simply call the functions as if they are in the same JS file.
Bạn có thể có hai tệp JavaScript không?Bạn có thể có các tệp riêng biệt hoặc một JS duy nhất, như mọi khi có sự đánh đổi bất kỳ tuyến đường nào bạn đi, vì vậy đó là vấn đề hiểu về Hows.Bên cạnh đó, vấn đề có lẽ là khi bạn thực hiện mã JavaScript của mình., as always there are tradeoff whatever route you take, so it's a matter of understanding the HOWs. Besides that, the issue is probably when you execute your javascript code. |