9

Một câu hỏi đơn giản mà tôi không chắc chắn nếu nó có một câu trả lời ngắn!Điều nào tốt hơn cho thời gian tải JavaScript: Nén tất cả trong một tệp lớn hoặc tải tất cả không đồng bộ?

Mô tả
Tôi có một file JavaScript được nạp trong một trang web, đây là một số lưu ý về họ:

  • Họ đều là xuất phát từ cùng một tên miền (không tải miền chéo cần thiết)
  • Chúng giống hệt nhau trên trang web.
  • Có một số tệp, như jQuery và 5 plugin khác cộng với tập lệnh ứng dụng của riêng tôi dựa trên chúng.
  • kích thước của họ tất cả nén = 224KB, (tôi kết hợp tất cả các tập tin trong một tập tin sau đó tôi nén chúng cùng một lúc sử dụng YUI Compressor 2

Vấn đề
Tôi đã nghe nói rằng 224KB không phải là lý tưởng để trong một tập tin và nó nên được chia thành nhiều tệp với tối đa 44KB mỗi lần. Tôi không thể nhớ lại khi tôi đã nghe điều này và tôi không chắc liệu nó có hiệu quả để chia nhỏ thành nhiều tệp hơn không, nhưng đó là sự thật mà 224KB mất nhiều thời gian để tải lần đầu tiên, hãy xem xét rằng trang web được tải với hình ảnh và css của khóa học. giảm thiểu sự cần thiết của việc bốc đầu của tập tin JavaScript và đặt nó ở phía dưới, cho đến nay đây là một tiến triển tốt nhưng tôi cần phải tải nó assynchounosly với HTML để đạt được thời gian Source và decission để thực hiện là:

Có hay không?
Giữ nó trong một tệp lớn được nén? hoặc chia chúng thành nhiều tệp nén và được nạp một cách không đồng bộ (Tôi biết cách xử lý các vấn đề liên quan đến sự phụ thuộc)?

Trả lời

6

Điều đó tùy thuộc vào trang web là gì và thời gian tải đầu tiên quan trọng như thế nào đối với trang web đó.

Bất kể điều đó, tôi có thể tải JQuery và các nội dung tương tự như vậy từ CDN công khai. Một lợi ích lớn là nó có thể đã được lưu trữ ngay cả khi họ chưa bao giờ đến trang web của bạn.

http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/

Đội Cappuccino là một người ủng hộ lớn của một tập tin - họ làm cho một khuôn khổ javascript. Các ứng dụng được tạo bằng công cụ của họ dự kiến ​​sẽ có thời gian tải.

http://cappuccino.org/discuss/2009/11/11/just-one-file-with-cappuccino-0-8/

2

Không có câu trả lời chính xác cho câu hỏi này. Nó phụ thuộc khá nhiều vào cách thức và thời điểm bạn sử dụng các tệp đó.

Thông thường, bạn chỉ muốn tải xuống các tệp JS trên tải trang được ứng dụng web yêu cầu phổ biến. Các tệp JS cụ thể hoặc trang cụ thể không được nén trong phần tải xuống JS chính và lý tưởng sẽ được tải theo yêu cầu.

Ngoài ra, câu hỏi này chỉ hợp lệ nếu bạn quan tâm đến trải nghiệm người dùng cho người dùng lần đầu tiên. Các tệp JS sẽ được lưu vào bộ nhớ cache cho mọi lượt truy cập khác.

4

Một lợi ích của JQuery tải và có liên quan từ một CDN công cộng sẽ tăng yêu cầu của đích. Tôi tin rằng khách hàng bị giới hạn 2 yêu cầu trên mỗi miền, do đó, bằng cách tải jquery từ google và plugin từ jquery và mã ứng dụng tùy chỉnh của bạn từ miền của riêng bạn, trình duyệt có thể thực thi đồng thời thay vì chờ hai lần đầu tiên đưa ra yêu cầu thứ ba.

Tôi đoán điều này cũng bổ sung thêm một cải tiến hiệu suất khác trên một tệp lớn. Ngay cả khi bạn chỉ chia nhỏ 1 tệp đó thành 2, nó có thể được truy xuất với 2 yêu cầu đồng thời từ trình duyệt có khả năng cải thiện thời gian tải.

3

Đây là những gì chúng tôi đã làm để làm cho ứng dụng web của chúng tôi nhanh chóng.

Các tệp JS và CSS chính được nén và đặt nội tuyến với đánh dấu HTML.
Các khoảng trắng của HTML bị xóa và hình ảnh được chuyển đổi thành data:image/png bởi tập lệnh trình bao.

Kích thước ~ 400kb nhưng được lưu trong bộ nhớ cache và được nén.
Phiên bản di động của ứng dụng web giống nhau nhưng ở ~ 250kb. Điều đó có nghĩa là toàn bộ ứng dụng đã sẵn sàng chạy, giống như một tệp thực thi, trong một cuộc gọi http duy nhất.

Sau đó, cuộc gọi http thứ hai nhận dữ liệu (JSON) và chúng tôi sử dụng PURE để hiển thị trong HTML bằng cách sử dụng các đánh dấu hiện có trong trang dưới dạng mẫu.

Ứng dụng được chia thành các mô-đun, chỉ các mô-đun chung được tải trước theo cách này.
Những người khác sẽ đến khi được yêu cầu bởi người dùng.

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