Tôi sẽ không trở thành người ủng hộ của quỷ, nhưng không có mối quan hệ chặt chẽ giữa công việc nghiệp dư và JavaScript nội tuyến. Hãy xem mã nguồn của một số trang web được biết đến nhiều nhất:
- Google,
- Wikipedia
- Microsoft,
- Adobe,
- Dell
- IBM.
Mỗi trang chủ của họ sử dụng JavaScript nội tuyến. Có nghĩa là tất cả những công ty đó thuê những người nghiệp dư để tạo ra trang chủ của họ?
Tôi là một trong những nhà phát triển không thể đặt mã JavaScript trong HTML. Tôi không bao giờ thực hiện nó bên trong các dự án mà tôi làm việc (ngoại trừ một số cuộc gọi như <a href="javascript:...">
đối với các dự án mà JavaScript không phô trương không phải là một yêu cầu ngay từ đầu và tôi luôn loại bỏ JavaScript nội tuyến khi tôi cấu trúc lại mã của người khác. Nhưng nó có đáng để nỗ lực không ? Không chắc lắm.
Hiệu suất khôn ngoan, bạn không phải lúc nào cũng có hiệu suất tốt hơn khi đặt JavaScript vào một tệp riêng. Thông thường, chúng tôi muốn xem xét băng thông lãng phí JavaScript nội tuyến, vì nó không thể được lưu trong bộ nhớ cache (ngoại trừ khi bạn xử lý HTML tĩnh có thể lưu trong bộ nhớ cache). Ngược lại, một tệp .js extern chỉ được tải một lần.
Trong thực tế, đây chỉ là một tối ưu hóa sớm khác : bạn có thể nghĩ đúng rằng việc ngoại lệ hóa JavaScript sẽ làm nhanh trang web của bạn, nhưng bạn cũng có thể hoàn toàn sai:
- Điều gì xảy ra nếu hầu hết người dùng của bạn đi kèm với bộ đệm trống?
- Bạn có nghĩ rằng với tệp .js bên ngoài, một yêu cầu sẽ được gửi đến tệp này ở mỗi yêu cầu trang, nếu trang web không được định cấu hình đúng (và thông thường, không phải vậy),
- Là tập tin .js thực sự được lưu trữ (với IIS, nó có thể không dễ dàng như vậy)?
Vì vậy, trước khi tối ưu hóa sớm, hãy thu thập số liệu thống kê về khách truy cập của bạn và đánh giá các màn trình diễn có và không có JavaScript nội tuyến.
Sau đó, đến đối số cuối cùng: bạn đã trộn JavaScript và HTML trong nguồn của mình, vì vậy bạn rất thích. Nhưng ai nói bạn trộn cả hai? Mã nguồn được trình duyệt sử dụng không phải lúc nào cũng là mã nguồn bạn đã viết. Ví dụ, mã nguồn có thể được nén, minified, hoặc một số CSS hoặc JS tập tin có thể được tham gia vào một tập tin, nhưng điều này không có nghĩa là bạn thực sự đặt tên của bạn biến a
, b
, c
... a1
vv hay mà bạn đã viết một tập tin CSS lớn mà không có không gian hoặc dòng mới. Theo cùng một cách, bạn có thể dễ dàng nhập mã nguồn JavaScript bên ngoài vào HTML vào thời gian biên dịch hoặc sau đó thông qua các mẫu.
Để kết luận, nếu bạn trộn JavaScript và HTML trong mã nguồn bạn viết, bạn nên cân nhắc việc không làm điều đó trong các dự án tương lai của mình. Nhưng điều đó không có nghĩa là nếu mã nguồn được gửi tới trình duyệt chứa JavaScript nội tuyến thì nó luôn xấu.
- Nó có thể là xấu.
- Ngược lại, đó có thể là một dấu hiệu cho thấy trang web được viết bởi các chuyên gia quan tâm đến hiệu suất, thực hiện các thử nghiệm cụ thể và xác định rằng khách hàng của họ sẽ nhanh hơn các phần nội tuyến của JavaScript.
- Hoặc nó có thể không có ý nghĩa gì cả.
Vì vậy, thật xấu hổ cho người nói rằng "trang web rất tuyệt, xấu hổ về kịch bản nội tuyến trong mã nguồn" bằng cách chỉ nhìn vào nguồn được gửi đến trình duyệt, mà không biết gì về cách trang web được thực hiện.