天天看點

javascript代碼引入【小結】

一、在html文檔中引入javascript代碼有兩種方式:

1.内嵌javascript代碼。如下所示:
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
        <script>
            <!-- javascript code -->
        </script>
    </head>
</html>
           
2.引入javascript檔案。如下所示:
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
        <script src="example.js"></script>
    </head>
</html>
           

二、javascript代碼引入位置及影響

1.内嵌js代碼位置
<!--<script>标簽放在<head>中時-->
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
        <script>
            <!-- javascript code -->
        </script>
    </head>
</html>
           

如果放在

<head>

标簽裡面,會先執行js代碼,然後再呈現頁面的内容。

<!--<script>标簽放在<body>中時-->
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <!-- page content -->
        <script>
            <!-- javascript code -->
        </script>
    </body>
</html>
           

如果放在

<body>

标簽尾部,會先呈現頁面的内容,再執行js代碼。如果放在

<body>

中其他位置,則會在加載頁面内容到

<script>

标簽位置處執行js代碼,再繼續加載頁面。

注:對于内嵌js代碼,如何在頁面加載之後執行js代碼,常用方法如下:

1.如果js代碼寫在

<head>

标簽裡面,則用:

window.onload=function(){<!-- js代碼 -->};

如果使用jquery,則可以用:

$(document).ready(function(){<!-- js代碼 -->});

或者:

$(window).load(function(){<!-- js代碼 -->});

來實作,但是這三種方法是有差別的:

window.onload

需要等到頁面内所有元素包括圖檔加載完畢後才能執行,而且

window.onload

不能同時編寫多個,如果有多個

window.onload

方法,隻會執行一個 。

$(document).ready()

是DOM結構繪制完畢後就執行,不必等到加載完畢。 而且可以同時編寫多個,并且都可以得到執行 。

$(window).load();

也是所有元素包括圖檔加載完畢才能執行,而且可以編寫多個。

如果js代碼量很大的話,一般不建議直接内嵌js代碼,因為容易造成代碼備援,而且不好維護。

2.外部js檔案引入位置
<!--<script>标簽放在<head>中時-->
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
        <script src="example.js"></script>
    </head>
    <body>
        <!-- page content -->
    </body>
</html>
           
<!--<script>标簽放在<body>中時-->
<!DOCTYPE>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <!-- page content -->
        <script src="example.js"></script>
    </body>
</html>
           

如果在

<head>

标簽中引入外部js檔案,意味着必須等到全部js代碼都被下載下傳、解析和執行完成以後,才能開始呈現頁面的内容。

如果想在頁面内容被呈現之後再執行js代碼,可以把js外部檔案放在

<body>

标簽尾部。

注:如果在

<head>

标簽中引入外部js檔案,而且還想在頁面内容呈現之後再下載下傳執行js代碼,可以在

<script>

标簽中增加

defer="defer"

屬性,這個屬性的用途是表明js腳本在執行時不會影響頁面的構造,也就是說js腳本會被延遲到整個頁面都被解析完畢後再運作。即浏覽器會立即下載下傳js代碼檔案,但是延遲執行。

繼續閱讀