javascri代码块的加载问题
来源:互联网 发布:直播源码 诱导充值 编辑:程序博客网 时间:2024/06/05 09:57
在哪里放置 JavaScript 代码?
通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所述。
放置于<head></head>之间
将 JavaScript 代码放置于 HTML 文档的 <head></head> 标签之间是一个通常的做法。由于 HTML 文档是由浏览器从上到下依次载入的,将 JavaScript 代码放置于<head></head> 标签之间,可以确保在需要使用脚本之前,它已经被载入了:
<html><head><script type="text/javascript">……JavaScript 代码……</script></head>....
也有部分情况将 JavaScript 代码放置于 <body></body> 之间的。设想如下一种情况:我们有一段 JavaScript 代码需要操作 HTML 元素。但由于 HTML 文档是由浏览器从上到下依次载入的,为避免 JavaScript 代码操作 HTML 元素时,HTML 元素还未载入而报错(对象不存在),因此需要将这段代码写到 HTML 元素后面,例子如下:
<html><head></head><body></body><div id="div1"></div><script type="text/javascript">document.getElementById("div1").innerHTML="测试文字";</script></html>但通常情况下,我们操作页面元素一般都是通过事件来驱动的,所以上面这种情况并不多见。另外我们不建议将 JavaScript 代码写到 <html></html> 之外。
提示
如果 HTML 文档声明为 XHTML ,<script></script> 标签必须在 CDATA 部分内声明,否则 XHTML 将把 <script></script> 标签解析为另一个 XML 标签,里面的 JavaScript 代码可能不会正常执行。因此,在严格的 XHTML 中使用 JavaScript 应该像如下示例一样声明:
<html><head><script type="text/javascript"><![CDATA[JavaScript 代码]]></script></head>....
以上两种将 JavaScript 代码写到 HTML 文档中的方式,都是 HTML 文档内部引用 JavaScript 代码的方式。除了内部引用,还可以使用外部引用方式。
外部引用 JavaScript 代码
将 JavaScript 代码(不包括<script></script>标签)单独形成一个文档,并以 js 后缀命名,如 myscript.js ,并在 HTML 文档 <script></script> 标签中使用 src 属性来引用该文件:<script type="text/javascript" src="myscript.js"></script>
在使用了外部引用 JavaScript 代码之后,其好处显而易见:
1.避免在 JavaScript 代码里使用 <!-- ... //-->
2.避免使用难看的 CDATA
3.公共的 JavaScript 代码可以被复用于其他 HTML 文档,也利于 JavaScript 代码的统一维护
4.HTML 文档更小,利于搜索引擎收录
5.可以压缩、加密单个 JavaScript 文件
6.浏览器可以缓存 JavaScript 文件,减少宽带使用(当多个页面同时使用一个 JavaScript 文件的时候,通常只需下载一次)
7.避免使用复杂的 HTML 实体,如可以直接使用 document.write(2>1) 而无需写作 document.write(2<1)
将 JavaScript 代码形成为外部文件,也会增加服务器的 HTTP 请求负担,在超高并发请求的环境下,这并不是一个好的策略。另外 在引用外部 js 文件时,需注意文件的正确路径。
- javascri代码块的加载问题
- 代码块的执行问题
- 静态代码块和构造代码块的相关问题
- Android 笔记:weiView 加载HTML代码块出现乱码问题
- 总结面试中问到的一个问题构造函数、静态代码块、和调用的方法的加载顺序
- java关于静态代码块的问题
- 关于static代码块的初始化问题:
- 【26】静态代码块、构造代码块和构造函数的特点及加载顺序
- JAVA中父类与子类静态代码块、非静态代码块、构造函数的加载顺序
- 静态代码块、构造代码块以及构造函数的加载顺序
- JAVA中静态代码块,构造代码块,构造函数的加载顺序
- Java中代码块,静态代码块和构造函数的加载顺序
- 静态代码块,构造代码块,构造方法的加载执行顺序研究
- java中静态代码块、代码块、构造方法的加载顺序
- 静态代码块、构造代码块以及构造函数的加载顺序
- 类中变量 代码块 构造方法 的加载顺序
- 代码块 对象创建 类加载的流程
- Java源代码各个代码块的加载顺序
- 大批量导入数据到mysql中
- python 生成器 generator
- sublime 全局跳转
- numpy模块的arang函数实例
- NYOJ又见01背包
- javascri代码块的加载问题
- 腾讯云-对象存储-签名失败
- Yii2 自动加载,依赖注入,获取实例,动态调用方法
- 洛谷P1137 旅行计划
- ireport常用DIY公式方法
- Hibernate jpa 在实体类中对于时间的注解 在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日) @Temporal(Tempora
- html5(标签二)
- 字幕实现自动滚动效果 marqueemar
- 解决Raspberry系统ssh默认关闭的问题