簡體   English   中英

執行javascript的優先級是什么?

[英]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解析器

  • 解析標簽
  • 找到JavaScript
  • (可選)下載javascript
  • 停止解析html
    • 解析js
    • 執行js
  • 恢復解析html
  • 找到JavaScript
  • (可選)下載javascript
  • 停止解析html
    • 解析js
    • 執行js
  • 恢復解析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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM