-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpart2.js
More file actions
57 lines (42 loc) · 2.58 KB
/
part2.js
File metadata and controls
57 lines (42 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2.1
<script>元素
6个属性(全部可选)
1. async : 可选。 表示应当立即下载脚本,但不妨碍其他操作
2. charset : 可选。 表示通过src属性指定的代码的字符集(很少使用)
3. defer : 可选。 表示脚本可以延迟到文档完全被解析和显示之后再执行。
4. language : (已废用)
5. src : 可选。 包含要执行代码的外部文件。
6. type : 可选。 编写代码使用的脚本语言的内容类型(也称为MME)。 默认值: text/javascript
</script>是结束语句。输出时会报错,若不想报错,只需<\/script>
带有src属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的javascript代码。嵌入的代码会被忽略
只要不存在defer和async属性,浏览器都会按照<script>元素在标签之中出现的先后顺序对他们依次进行解析。如
<script></> (1)
<script></> (2)
<script></> (3)
解析顺序为 1 2 3
2.1.1
通常把javascript语句放在<body>后面,为了避免延迟过高,页面加载缓慢
2.1.2延迟脚本
<script>定义了defer属性。用途:表明脚本在执行时不会影响页面的构造。即,脚本会被延迟到整个页面都解析完毕后再运行。相当于告诉浏览器立即下载,但延迟执行。
在现实中,延迟脚本并不一定按顺序执行,所以最好只设置一个defer
defer属性只适用于外部脚本文件
<script defer = "defer" src = "demo.js">
2.1.3异步脚本
<script>定义了async属性。
async属性同样只适用于外部脚本文件
指定async属性的目的是不让页面等待两个脚本下载和运行,从而异步加载页面其他内容。建议异步脚本不要在加载期间修改DOM。
异步脚本一定在页面的load事件前执行,但可能会在DOMContentLoaded时间触发之前或之后执行。
<script async src="demo.js">
在XHTML中,要把async设置为async="async"
2.2嵌入代码与外部文件
尽可能使用外部文件来包含js代码。
优点(3点): 可维护性、可缓存、适应未来。
2.3文档模式
最初两种文档模式:混杂模式 和 标准模式
IE提出了一种所谓的准标准模式
如果在文档开始处没有声明文档模式,默认开启混杂模式。但开启混杂模式并不好,不同浏览器在该模式下差异巨大,如果不适用hack技术,跨浏览器根本没有一致性。
2.4<noscript>元素
在不支持JavaScript的浏览器中显示代替的内容。
<noscript>只有在下列情况才会显示出来:
1.服务器不支持脚本;
2.服务器支持脚本但脚本被禁用。