HTML中使用JS——script标签
1. <script>标签或元素,属性有6个,都是可选的:src,async(立即下载脚本,外部文件有效),defer(立即下载脚稍后执行,文档完全被解析和显示后执行,外部文件有效),charset(很多浏览器会忽略),type(默认text/javascript),language(已废弃)。
2.script标签内的代码任何位置不要出现"</script>",若必须,则使用转移字符“\”,如“<\/script>”。
3. 带有src属性的script,在<script></script>之间的嵌入代码被忽略,只执行外部代码。即使没有src的属性值,甚至没有等号和引号,如<script src></script>,也会忽略嵌入代码。
4.(这部分理解不透彻)延迟脚本(含defer属性)和异步脚本(含async属性)都是立即下载脚本、异步执行脚本。但是1). 前者是等遇到</html>开始执行;2). 后者虽然与页面渲染异步、但它是下载完就暂停渲染页面来执行脚本。3). 对于不加defer和async属性的脚本,立即下载并执行,执行完后才加载或执行它后面的标签(与async不同)。
HTML5规定延迟脚本先于DOMContentLoaded事件执行,且各延迟脚本顺序执行,但实际情况并不一定如此。异步脚本一定会在load事件前执行,但可能在DOMContentLoaded事件触发前或后执行。
延迟脚本和异步脚本中都不能修改DOM,如使用document.write等。
5. 把有些脚本放到<body>中的末尾、而不是<head>中,目的是使页面在这些脚本之前就解析和渲染,而不会因加载、解析和执行这些脚本使浏览器呈现页面时出现明显延迟、页面空白的情况。先呈现页面内容会使人感觉页面加载快,用户体验更好。
6. 使用外部脚本文件的优点:1). 可维护性提高;2). 可缓存文件、3). 重复使用的脚本只需下载一次;4). XHTML与HTML对于外部脚本文件的语法是一样的,不用特别注意XHTML中的规则。
7. 文档模式有三种:标准模式、准标准模式、混杂模式。准标准模式与标准模式差异很小,故标准模式有时泛指这两种。若文档开始出没有文档类型声明,则默认开启混杂模式。混杂模式在不同浏览器差异非常大,混杂模式下的不同浏览器很难做到页面一致。
8.<noscript></noscript>在两种情况下noscript中的内容会显示(其他时候不显示):1).浏览器不支持脚本;2).浏览器支持脚本,但脚本被禁用。noscript中可以包含除script的任何能出现在<body>中的元素。