7
Tôi muốn tải trước một tệp JS lớn sau khi trang đã tải, để khi tôi liên kết đến tệp JS đó trên trang yêu cầu, nó đã được tải xuống và lưu vào bộ nhớ cache.Tải trước JS, nhưng đừng chạy nó
tôi về cơ bản làm điều này vào lúc này, và nó hoạt động, nhưng tất nhiên nó không phải là đúng cách:
preload_js = new Image();
preload_js = "http://domain.com/files/file.js";
này dường như là một phương pháp nhanh chóng và đơn giản như vậy, không cần thiết Ajax vv và nó hoạt động tốt.
Cách thích hợp để thực hiện việc này là gì? Chắc chắn không phải với Ajax như có vẻ quá mức cần thiết cho việc này.
Tôi biết có rất nhiều phương pháp để tải JS nhưng tất cả dường như thực sự chạy mã sau khi tập lệnh đã tải, mà tôi không muốn.
Tôi không muốn sử dụng jQuery (hoặc bất kỳ thư viện nào), nó phải là JS đơn giản. Cảm ơn vì bất kì sự giúp đỡ.
Tôi nghi ngờ không có giải pháp "sạch hơn". Câu hỏi hay. Nice hack. –
Bạn có thể chỉ quấn mã của mình vào một khai báo hàm mà bạn có thể gọi khi cần thiết và đưa mã đó vào một thẻ '
Từ this blog post:
Xem the post để biết thêm chi tiết.
EDIT: Nhìn vào bình luận trên bài đăng đó, ai đó đề cập this link, mà nói về những vấn đề với phương pháp
new Image()
tải trước trong IE và các trình duyệt khác. Dưới đây là một đoạn trích:Điều này giải thích hành vi được đề cập trong OP trong nhận xét bên dưới (IE9 chỉ tải xuống 4KB của tệp).
Nó có vẻ như lựa chọn duy nhất qua trình duyệt đáng tin cậy của bạn có thể sử dụng Ajax ...
Nguồn
2013-05-17 05:37:18
Tôi đã không chấp nhận câu trả lời vì tôi đã gặp phải các vấn đề lớn. Mã vì nó gây ra các vấn đề trên iPhone và IE9 (và tôi chưa thực sự thử nghiệm nhiều hơn thế này). IPhone mất tuổi để tải (sử dụng phương thức trong mã) và thích phương thức mà mã sử dụng cho IE (sau đó hoạt động tốt). IE9 chỉ tải về 4k của tập tin, đó là vô dụng. Cảm ơn bạn đã chỉ ra giải pháp nhưng nó không thể sử dụng được. – user2143356
Ok, có vẻ như AJAX là cần thiết. Vấn đề là tất cả các tên miền chéo này. Tất cả các tệp JS đều có trên CDN, bao gồm jQuery được lưu trữ bởi Google CDN, nhưng tôi vẫn gặp phải vấn đề về miền chéo. Tôi đã đọc trên JSONP nhưng mọi người cứ nói về callbacks. Tôi chỉ muốn tải trước một tệp. Ví dụ image.src nhanh và đơn giản (nếu nó hoạt động!). Có một tham số đơn giản để thêm vào Ajax của tôi? Tôi đang sử dụng một kịch bản lệnh vanilla Ajax cơ bản. – user2143356
SỬ DỤNG
window.document.onload chắc chắn kịch bản java sẽ không chạy cho đến khi bạn DOM đã sẵn sàng
Nguồn
2013-05-17 06:18:03
Điều này hoàn toàn hiểu nhầm câu hỏi. – slebetman