红宝书《JavaScript高级程序设计》学习笔记(二)在HTML中使用JavaScript

<script>元素

defer属性:脚本延迟到文档被完全解析和显示之后再执行。

type属性:默认为text/javascript

<script>元素内的代码,从上到下以此解释,在<script>内嵌代码时,不能在代码的任何地方出现“</script>”字符串,因为按照浏览器解析规则,当遇到这串时,会认为那是结束的</script>标签,如果有必要添加该字符串,要添加上转义字符“<\/script>”就能正常显示了。

如果在XHTML中,</script>可以省略,但在HTML中不可以。

JavaScript文件中带有js扩展名,但这个扩展名不是必须的。这样一来,使用JSP、PHP动态生成js代码便成为了可能。但是服务器端通常还是需要看扩展名来决定使用哪种MIME类型,如果不使用ks扩展名,请确保返回正确但MIME类型。

如果同时<script>标签内引入代码和标签外src代码,则只会下载执行外部脚本文件,嵌入但代码会被忽略。

只要不存在defer和async属性,浏览器都会按照<script>出现但先后顺序依次加载。


现代Web应用程序一般都把全部JavaScript引用放到<body>元素中页面内容的后面。

defer属性相当于告诉浏览器立即下载,不过把延迟脚本放在页面底部仍然是最佳选择。

在XHTML文档中,要把defer的属性设置为defer=‘defer’

async属性相当于异步加载。

在XHTML中,要把async属性设置为async='async';


编写XHTML代码规则要比编写HTML严格得多,比如嵌入XHTML中的<script>元素内的js代码中不能有大于号(>)和小于号(<),因为会被当作标签解析。如果需要使用这些“有争议的符号”,可以用HTML实体(&lt;)替换所有的小于号;另外第二个方法是使用CData片段来包含JavaScript代码<![CDTATA[……]]>片段中的代码不会被解析。

将页面中的MIME类型设置为application/xhtml+xml的情况下会触发XHTML模式。


一般认为最好的做法还是尽可能使用外部文件来包含JavaScript代码。因为有可维护性、可缓存、适应未来的优点。

文档模式包括混杂模式(quirks mode)标准模式(standards mode),使用文档类型(doctype)切换实现。

如果文档在开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。

<noscript>标签用于浏览器不支持脚本或被禁用的情况。

发布了122 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/HuoYiHengYuan/article/details/101445757