2013-02-12 31 views
9

Theo nhiều nguồn như Mạng nhà phát triển Yahoo, javascript nằm ở cuối trang để nội dung trang web sẽ hiển thị trước khi javascript được tải. Việc thực hiện cuộc gọi đến require.js trong thẻ head sẽ khiến trình duyệt chờ cho tập lệnh hoàn tất tải trước khi hiển thị một trang không?tại sao require.js đi vào bên trong thẻ đầu

<head> 
<title>My Sample Project</title> 
<script data-main="scripts/main" src="scripts/require.js"></script> 
</head> 

Trả lời

5

Câu trả lời hơi phức tạp; Bạn có thể truy cập vào số điện thoại <head> hoặc <body> của trang, tùy thuộc vào những gì bạn đang yêu cầu với require.js. Các hoạt động nhất định cần phải xảy ra trước khi nội dung được tải, nhưng hầu hết mọi thứ đều vui vẻ chờ đợi.

Ví dụ về điều gì đó cần xảy ra trước khi tải trang là một bộ xử lý trước css như LESS, điều này rõ ràng là cần chạy trong <head> (thực tế điều này có lẽ nên được biên dịch trước và được phân phối dưới dạng css tĩnh, nhưng nó là một ví dụ điển hình) - ví dụ khác là hệ thống mẫu JavaScript hoặc một số hệ thống MVC phía khách hàng như ember.js

JavaScript cơ bản hiện tại thường an toàn để bao gồm nó ở cuối trang.

+0

Chỉ cần lưu ý rằng nếu bạn bao gồm đánh dấu requirejs của mình trong phần tử đầu, nó sẽ tự động chèn một thẻ tập lệnh khác với thuộc tính async cho tập lệnh chính của bạn. – Bil

1

Câu trả lời là có. Đó là điều tương tự cho tất cả các kịch bản trong thẻ đầu. Một khối script tải xuống song song và trình duyệt tiếp tục hiển thị trang khi nó kết thúc được thực thi.

0

Tùy thuộc vào nội dung của tệp javascript, khi nào nó sẽ được thực hiện.

ví dụ:

<script> 
    function load() { 
    alert("load event!"); 
    } 
    window.onload = load; 
</script> 

hộp thông báo sẽ hiển thị sau khi trang được tải.

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