Trang trình bày 25/26 của this presentation nói về đặc điểm của các phương pháp khác nhau để chèn tập lệnh. Nó cho thấy rằng IE là trình duyệt duy nhất sẽ thực thi các script đó theo thứ tự. Tất cả các trình duyệt khác sẽ thực thi chúng theo thứ tự mà chúng tải xong. Ngay cả IE sẽ không thực hiện chúng theo thứ tự nếu một hoặc nhiều có js nội tuyến thay vì một src.
Một trong những phương pháp được đề xuất là để chèn một phần tử DOM mới:
var se1 = document.createElement('script');
se1.src = 'a.js';
var se2 = document.createElement('script');
se2.src = 'b.js';
var se3 = document.createElement('script');
se3.src = 'c.js';
var head = document.getElementsByTagName('head')[0]
head.appendChild(se1);
head.appendChild(se2);
head.appendChild(se3);
Để làm cho phần kịch bản thứ hai được tạo ra bạn có thể sử dụng một kịch bản để tạo ra nội dung đó và vượt qua các thông số:
se2.src = 'generateScript.php?params=' + someParam;
EDIT: Mặc dù những gì bài báo tôi nói, thử nghiệm của tôi cho thấy hầu hết các trình duyệt sẽ thực thi kịch bản lệnh document.write của bạn nếu chúng có src, vì vậy trong khi tôi nghĩ phương pháp trên được ưu tiên, bạn có thể làm điều này cũng như:
<script language="javascript" type="text/javascript">
document.write("<script type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
CHỈNH SỬA LẠI (trả lời nhận xét cho chính tôi và những người khác): Bạn đã tạo tập lệnh trên trang của mình. Bất cứ điều gì bạn đang làm đều có thể được chuyển sang một kịch bản lệnh phía máy chủ khác, tạo ra cùng một khối mã. Nếu bạn cần các tham số trên trang của bạn thì chuyển chúng vào tập lệnh trong chuỗi truy vấn.
Ngoài ra, bạn có thể sử dụng phương pháp này tương tự nếu như bạn đề nghị, bạn đang tạo ra inline kịch bản nhiều lần:
<script language="javascript" type="text/javascript">
document.write("<script type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params1 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params2 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params3 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
Tuy nhiên, điều này đang bắt đầu trông như thể bạn đang tiếp cận này một cách sai lầm . Nếu bạn đang tạo ra một khối lớn mã nhiều lần thì có lẽ bạn nên thay thế nó bằng một hàm js duy nhất và gọi nó với các tham số khác nhau ...
Phải đọc: http://html5rocks.com/en/tutorials/speed/script-loading – Pacerier