1:在使用<script>嵌入JavaScript代码死,记住不要在代码中的任何地方出现"</script>"字符串
例如,浏览器在加载下面所示代码时就会产生一个错误
<script type="text/javascript"> function sayScript(){ alert("<script/>"); } </script>
2:带有src属性的<script>元素不应该在其<script></script>标签之间再包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行脚本文件,嵌入的代码会被忽略。
3:<script>和<img>类似,src属性可以引用来自外部域的文件。但是这样存在危险,需要小心谨慎使用。
4:延迟脚本 defer
<script type="text/javascript" defer="defer" src="example.js"></script>
只适用外部引用的文件
脚本会被延迟到整个页面都解析完毕后再运行,相当于告诉浏览器立即下载,但延迟执行。
现实当中,延迟脚本并不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最好只包含一个延迟脚本。
5:异步脚本 async
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>联系</title> <script type="text/javascript" async="async" src="example1.js"></script>
<script type="text/javascript" async="async" src="example2.js"></script> </head> <body> </body> </html>
与defer类似
只适用外部引用的文件
脚本会被延迟到整个页面都解析完毕后再运行,相当于告诉浏览器立即下载,但延迟执行。
与defer不同的是标记为async的脚本并不保证按照指定他们的顺序先后执行,因此,确保两者之间不依赖非常重要
6:外部文件 之于 嵌入代码的优点
*可维护性好
*可缓存
*适应未来:无需使用XHTML、hack技术