File tree Expand file tree Collapse file tree 1 file changed +92
-0
lines changed
Expand file tree Collapse file tree 1 file changed +92
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ published : true
3+ title : js代码应该放在HTML的哪里
4+ layout : post
5+ ---
6+
7+
8+ ## 在哪里放置JavaScript代码?
9+
10+ 我最近碰到个问题,load和onload的区别。当中在实验代码时发现js代码的放置顺序会影响js代码的执行。于是我就想知道js代码放在那最合适。
11+
12+
13+ ### 放置于<head >之间
14+
15+ 这个是通常做法。由于HTML文档是由浏览器从上到下依次载入的。这样放置就保证了使用js脚本之前,它已经被载入了。
16+
17+
18+ ``` html
19+ <html >
20+ <head >
21+ <script type =" text/javascript" >
22+ ……
23+ JavaScript 代码
24+ ……
25+ </script >
26+ </head >
27+ ....
28+ ```
29+
30+
31+ ### 放置于<body >之间
32+
33+ 我们假设Javascript代码需要操作HTML元素,而HTML是由浏览器从上到下依次载入的。如果放在<body >的前一部分,就会导致要操作的HTML元素还没载入,以至于报错。因此,我们需要把Javascript代码写在<body >的后一部分。
34+
35+
36+ ``` html
37+ <html >
38+ <head >
39+ </head >
40+ <body >
41+ </body >
42+ <div id =" div1" ></div >
43+ <script type =" text/javascript" >
44+ document .getElementById (" div1" ).innerHTML = " 测试文字" ;
45+ </script >
46+ </html >
47+ ```
48+
49+ > 提示:如果 HTML 文档声明为 XHTML ,<script ></script > 标签必须在 CDATA 部分内声明,否则 XHTML 将把 <script ></script > 标签解析为另一个 XML 标签,里面的 JavaScript 代码可能不会正常执行。因此,在严格的 XHTML 中使用 JavaScript 应该像如下示例一样声明:
50+
51+
52+ ``` html
53+ <html >
54+ <head >
55+ <script type =" text/javascript" >
56+ < ! [CDATA [
57+ JavaScript 代码
58+ ]]>
59+ </script >
60+ </head >
61+ ....
62+ ```
63+
64+
65+ ### 外部引用JavaScript代码
66+
67+ 将JavaScript代码单独形成一个 文档,并以js后缀命名。
68+
69+ ``` html
70+ <html >
71+ <head >
72+ <script type =" text/javascript" src =" myscript.js" ></script >
73+ </head >
74+ ....
75+ ```
76+
77+ 使用优点:
78+
79+ - 1.避免在 JavaScript 代码里使用 <!-- ... //-->
80+
81+ - 2.避免使用难看的 CDATA
82+
83+ - 3.公共的 JavaScript 代码可以被复用于其他 HTML 文档,也利于 JavaScript 代码的统一维护
84+
85+ - 4.HTML 文档更小,利于搜索引擎收录
86+
87+ - 5.可以压缩、加密单个 JavaScript 文件
88+
89+ - 6.浏览器可以缓存 JavaScript 文件,减少宽带使用(当多个页面同时使用一个 JavaScript 文件的时候,通常只需下载一次
90+
91+
92+ 参考文章:[ https://www.jb51.net/article/56337.htm ] ( https://www.jb51.net/article/56337.htm )
You can’t perform that action at this time.
0 commit comments