js阻礙DOM加載
阿新 • • 發佈:2018-03-13
1.0 clas ext pos head style inf get scale
今天用谷歌做了個小測試
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> 1 <br /> <script> alert(1); </script> 2 </body> </html>
根據頁面的加載順序是從上到下的,這個頁面的執行順序應該是:顯示1 --> altert(1) --> 顯示2
可是打開網頁的時候居然是先彈出 1,然後 顯示 1 2。給人一種執行順序不符合正常規律的錯覺。
然後使用火狐瀏覽器測試,發現又是按照預期顯示了。
接著又測試了safari 瀏覽器,顯示的跟谷歌一樣。這就讓人很納悶了。然後對代碼又進行了相應的改動,如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> 1 <br /> <script> alert(document.getElementsByTagName(‘body‘)[0].innerText); document.getElementsByTagName(‘body‘)[0].innerText = ‘a‘; alert(document.getElementsByTagName(‘body‘)[0].innerText); </script> 2 </body> </html>
谷歌測試:
火狐測試:
safari測試
所以:之所以造成執行順序錯亂的假象是因為瀏覽器渲染的差異造成的。看來還是火狐君比較可愛。
js阻礙DOM加載