![](/img/trans.png)
[英]How to make a function execute immediately after onclick in JavaScript?
[英]How to execute function on dynamically loaded javascript immediately after loading?
我對以下問題的答案感到困惑: 動態加載的JS文件的執行
我有一些HTML:
<html>
<head>
<script type="text/javascript" src="/scripts/onload.js"></script>
</head>
<body onload="loadscript()">
</body>
</html>
loadscript()
將另一個腳本插入頭部。 如何立即從插入的腳本中調用函數? (不使用jQuery)
編輯:要插入的腳本是在運行時根據當前頁面的路徑確定的。
您無法立即在新腳本中運行代碼,因為瀏覽器必須首先通過網絡獲取代碼。 這需要時間,所以這是一個異步操作-插入腳本標簽的代碼將在后台獲取腳本的同時繼續執行。
一旦新的腳本文件到達,JavaScript引擎將解析並盡快執行它。 如果其他一些JavaScript代碼已經在執行(例如,事件處理程序),它將在執行新腳本之前等待該代碼完成。 本文很好地解釋了JavaScript異步執行模型。
您無法精確控制執行新腳本的時間,但可以從新腳本的頂層調用一個函數以使其盡快執行:
function myFunction() {
// code to execute when the second script is included
}
myFunction();
如果您不需要在其他任何地方引用此功能,則可以使用IIFE保存一些字符:
!function() {
// code to execute when the second script is included
}()
(或(function() { /* ... */ }())
,或IIFE語法上的任何其他變體)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.