Tôi đang phát xung quanh với system.js (lấy cảm hứng từ angular2 sử dụng nó cho hướng dẫn của chúng), nhưng tôi nhận được hiệu suất cực kỳ xấu ngay cả đối với mẫu nhỏ nhất.Các vấn đề về hiệu suất khi sử dụng System.js
Ví dụ đoạn mã sau có một sự chậm trễ của 26000ms (!) Giữa thứ hai (một trước System.import
) và cuối cùng (trong app.js
) console.log trong khi chạy cục bộ (vì vậy không chậm trễ mạng)
chỉ mục. html:
<!DOCTYPE html>
<html lang="en">
<head>
<title>System.js Sample</title>
<script>console.log("1: " + new Date().getTime());</script>
<script src="bower_components/system.js/dist/system.js"></script>
</head>
<body>
<script>
console.log('2: ' + new Date().getTime());
System.import('app.js');
</script>
</body>
</html>
App.js:
console.log('3: ' + new Date().getTime());
tôi đã cài đặt phiên bản mới nhất system.js qua Chòi ("system.js": "~ 0.18.17") và loại bỏ tất cả mã còn lại nó thực sự chỉ là cuộc gọi System.import có độ tuổi. Vậy tôi đang làm gì sai?
Ảnh của tab Mạng khi tải trang dưới Chrome:
Tôi nhớ có một số loại lỗi trong System.js khiến nó rất lag nếu sử dụng các mô-đun kiểu Hệ thống, nhưng OK nếu sử dụng AMD. Nếu bạn đang sử dụng các mô-đun kiểu Hệ thống, hãy thử chuyển sang AMD và xem nó có hoạt động tốt hơn không. – Ixonal
@Ixonal Xem xét rằng tôi chỉ chuyển đổi từ phương pháp đúng và được thử nghiệm của "ghép nối tất cả các tập lệnh thành một, thu nhỏ và sau đó bao gồm dưới dạng thẻ tập lệnh" Tôi có thể cần thêm một chút thông tin nữa :) Ngoài ra, hướng dẫn sử dụng Hệ thống. js Tôi muốn gắn bó với nó (hoặc điều đó chỉ có nghĩa là một cú pháp khác nhau nhưng cùng một thư viện? Yeah tôi là một chút bối rối). – Voo
Tôi giả sử bạn đang sử dụng TypeScript? Bạn có thể thiết lập hệ thống mà nó sử dụng cho các mô-đun trong tệp tsconfig.json của bạn. Chỉ cần đặt module thành "amd". Hệ thống có thể nhận ra nhập khẩu kiểu CommonJS, AMD, ES6, và hệ thống, vì vậy nó không quan trọng nếu bạn có nó transpile để AMD. – Ixonal