關於對defer的理解

2022-02-18 17:04:04 字數 828 閱讀 1511

**

<

script

defer

>

function init()   

init();   

script

>

<

divid

="div"

>

如果你能看到這一句,那就是說沒有達到我所要的效果   

<

imgsrc

=""/>

div>

在ie6和firefox2下完全不一樣

ie6中最後執行結果是ok,而firefox中是「如果你能看到這一句,那就是說沒有達到我所要的效果」

我覺得defer這個東西 有推遲執行的意思,ie6裡面先解析完所有html**再執行defer中的指令碼

firefox中 先執行指令碼後解析html

不知道這樣的理解是否有誤?

defer的含義並不是這樣的。

在w3c標準中defer的本意只是表示這段指令碼不會輸出文件內容,所以可以繼續解析和呈現。至於執行順序,完全語焉不詳。而且這個屬性只是乙個hint,沒有說必須如此,所以許多瀏覽器根本不睬這個屬性。

但是在defer屬性的創造者ms那裡,是有execute順序的,關於defer的稀奇古怪的行為請看:

正在制定的html5有極大可能會完善script標籤的定義。

會有兩個屬性,async和defer。

其中defer將明確為在整個page的parsing結束之後執行(執行時機差不多就是domcontentload或者ie htc的ondocumentready)。並且會嚴格按照所有defer的script的順序執行。

關於對defer的理解

function init init script 如果你能看到這一句,那就是說沒有達到我所要的效果 div 在ie6和firefox2下完全不一樣 ie6中最後執行結果是ok,而firefox中是 如果你能看到這一句,那就是說沒有達到我所要的效果 我覺得defer這個東西 有推遲執行的意思,ie6...

關於對堆疊的理解

棧區 stack 是由系統或者編譯器進行分配和釋放,存放區域性變數的值 函式的引數值等,操作方式類似於資料結構中的棧。堆區 heap 一般是由程式設計師自己進行分配記憶體空間和釋放的,假設程式設計師沒有對其進行釋放,在程式結束時,有時候作業系統會對其進行系統 操作方式類似於鍊錶。全域性區 靜態區st...

關於對指標理解

在c語言中,記憶體單元的位址稱為指標,打個比喻。代表 0x2000位址代表門牌號,取位址符。i pointer 指標變數,它的內容是位址量 i pointer 指標的目標變數,它的內容是資料 i pointer 指標變數占用記憶體的位址 i pointer 內容位址量 i 取i位址 i pointe...