javascript的初始化

在我们使用XHTML时,<script>标签内容需定义成CDATA,以告诉XML/HTML解释器不要解析这些内容,而是直接把他们交给脚本引擎去处理.

如:<script type=”text/javascript”>
//<![CDATA[
alert("Hello xiaofan!");
//]]>
</script>
使用javascript注释//将CDATA的定义字符串在javascript解释器前隐藏.

当我们在页面中同时引入了多个脚本时(两个脚本应该是相互独立而又不相互影响的)

如:
<script type=”text/javascript” src=”first.js”></script>
<script type=”text/javascript” src=”second.js”></script>

所有的脚本都会被注册为HTML页面中的全局对象;如果同时存在相同变量名的变量,在不同的脚本中后定义的那个优先本例中引用的将是second.js中定义的值.

<head>
<script type=”text/javascript” src=”test.js”></script>
</head>

//test.js
alert(“hello.xiaofan!”);

这里要说的是当浏览器解析遇到<script>标签时,它将发送一个HTTP请求,去获取脚本文件.此时对HTML页面的渲染将暂停,直到脚本被完全的加载完毕或者在一段时间之后停止加载.
如果在<script>标签中加入体积较大的脚本内容,同时将<script>放到<head>中将有可能减缓对页面的渲染速度.
脚本文件加载完之后,就会被解析,执行.在这里,浏览器将遇到alert语句,只有在用户点击’确定’之后才会恢复正常的HTML解析.

注意这个例子:
<head>
<script type=”text/javascript” src=”test.js”></script>
</head>
<body>
<span id=”test”>click me!<span>
</body>

//test.js
var test = document.getElementById(‘test’);
test.onclick = function(){alert(“Hello xiaofan!”)};

在这里,如果用户点击这个元素,alert就会弹出来,看起来是正确的.可是当浏览器加载完脚本文件要执行这些语句的时候,还没有对HTML页面解析,所以此时还不存在一个id为test的元素,从而产生一个错误信息.

解决这个问题,将语句封装进一个函数,浏览器创建了函数而暂不去执行

随机日志

Leave a Reply