[英]What is the priority of execution of javascript?
我有一個由博客鏈接的外部JavaScript文件。 我想更改其中的值。 (JavaScript分配的CSS值)
是否可以在頭或主體中運行相同的代碼,並為JavaScript分配不同的值? 例如,CSS賦予外部CSS樣式表最低的優先級,並分配文件內提供的屬性。
JavaScript有這樣的優先級系統嗎?
它不是優先級,而是執行順序 。 Javascript不參與任何優先級排序,或者甚至不需要CSS的特殊性。
不管是內聯js還是外部js,Javascript代碼都按照包含在HTML文檔中的順序執行 ,盡管events
使事情變得更加復雜,但我們可以安排代碼稍后在某些事件(例如的'load'事件)上運行window
。 因此,很容易確保代碼在它們之后運行,但是如果說從onload
事件處理程序更改樣式,則必須將代碼添加到同一event
本身。 (至少在DOM3中確保了事件處理程序的順序)
但是,您嘗試過CSS中的!important
時,它可以覆蓋內聯樣式,並且在諸如此類的某些情況下很方便。 但是,如果您能夠使用JavaScript很好地刪除樣式。
Javascript代碼在包含時執行。
HTML解析器
當心諸如代碼之類的事情,這些事情會使其自身與domready事件掛鈎,僅在完成文檔加載或其他事件時才被觸發,然后歸結為它們注冊的順序。
還有諸如defer和async之類的東西,這將使它在parralel中進行加載/執行以進行解析(詳細信息和supporr因瀏覽器而異)。 但是在大多數情況下,如果Google博客中沒有對模板進行大量修改,我布置的順序就會發生
JS會在加載后立即執行,因此將腳本放在腳本之后(可以鏈接到外部文件,也可以將其內聯),可以在第一個腳本中進行更改,但那時可能已經執行了。
如果他們的腳本在運行之前等待某些內容,例如DOM ready事件,則您可以覆蓋它的某些部分
if you have tow function with same name, one in head and another one in an external .js file and both of them write a value in <a>, the result will be from the internal one, let's look at an example
<html>
<head>
<script src="myscripts.js"></script>
<script type="text/javascript">
function test(){
document.getElementById("tester").innerHTML="Internal";
}
</script>
</head>
<body onload="test()">
<a id="tester"></a>
</div>
</body>
</html>
-------------------------------------
in myscripts.js
function test(){
document.getElementById("tester").innerHTML="external";
}
-------------------------------------
when the page run it shows:
Internal
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.