2010html执行顺序

上传人:kms****20 文档编号:40590597 上传时间:2018-05-26 格式:DOC 页数:7 大小:45KB
返回 下载 相关 举报
2010html执行顺序_第1页
第1页 / 共7页
2010html执行顺序_第2页
第2页 / 共7页
2010html执行顺序_第3页
第3页 / 共7页
2010html执行顺序_第4页
第4页 / 共7页
2010html执行顺序_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《2010html执行顺序》由会员分享,可在线阅读,更多相关《2010html执行顺序(7页珍藏版)》请在金锄头文库上搜索。

1、2010-04-07 08:39 1. html 中的加载是自上而下如 a.html 中alert(1);(在 a.js 中有一句 alert(2)2.1、IE 下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进 行的。 2、在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说 所有相关联的元素都已经下载完)。 3、如果遇到语义解释性的标签嵌入文件(JS 脚本,CSS 样式),那么此时 IE 的下载过程会启用单独连接进行下载。 4、并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。 5、样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成

2、后,将对此前所有元素(含以前已经渲染的)重新进行渲染。 6、JS、CSS 中如有重定义,后定义函数将覆盖前定义函数。姓名:alert(3)则执行顺序是 1,2,3,姓名:,如果要在 “姓名:,“上面写document.getElementById(“a“)返回的是 null,但在下面写 可以,尽管 alert(3)先于它执行注意:只要是方法都是加载完后执行,若写 onload=“a()“,此方法是以上的1,2,3.全部执行完后才执行3.一、在 HTML 中嵌入 Javasript 的方法1、直接在 Javascript 代码放在标记对和之间2、由标记的 src 属性制定外部的 js 文件3、放

3、在事件处理程序中,比如:点击我4、作为 URL 的主体,这个 URL 使用特殊的 Javascript:协议,比如:点击我5、利用 javascript 本身的 document.write()方法写入新的 javascript 代码6、利用 Ajax 异步获取 javascript 代码,然后执行第 3 种和第 4 种方法写入的 Javascript 需要触发才能执行,所以除非特别设置, 否则页面加载时不会执行。二、Javascript 在页面的执行顺序1、页面上的 Javascript 代码是 HTML 文档的一部分,所以 Javascript 在页面 装载时执行的顺序就是其引入标 记的出

4、现顺序, 标记 里面的或者通过 src 引入的外部 JS,都是按照其语句出现的顺序执行,而且执 行过程是文档装载的一部分。2、每个脚本定义的全局变量和函数,都可以被后面执行的脚本所调用。3、变量的调用,必须是前面已经声明,否则获取的变量值是 undefined。/4、同一段脚本,函数定义可以出现在函数调用的后面,但是如果是分别在两段 代码,且函数调用在第一段代码中,则会报函数未定义错误。/ /5、document.write()会把输出写入到脚本文档所在的位置,浏览器解析完 documemt.write()所在文档内容后,继续解析 document.write()输出的内容, 然后在继续解析

5、HTML 文档。/); document.write(); document.write(alert(2);) document.write(alert(“我是“ + tmpStr);); document.write(); / / test.js 的内容是:var tmpStr = 1; alert(tmpStr);在 Firefox 和 Opera 中的弹出值的顺序是:1、2、我是 1、3在 IE 中弹出值的顺序是:2、1、3,同时浏览器报错:tmpStr 未定义原因可能是 IE 在 document.write 时,并未等待加载 SRC 中的 Javascript 代码 完毕后,才执行下

6、一行,所以导致 2 先弹出,并且 执行到 document.write( document.write(“我是“ + tmpStr)调用 tmpStr 时,tmpStr 并未定义,从而 报错。解决这个问题,可以利用 HTML 解析是解析完一个 HTML 标签,再执行下一个的 原理,把代码拆分来实现:/); / /); document.write(alert(2);)document.write(alert(“我是“ + tmpStr);); document.write(); / /这样 IE 下和其他浏览器输出值的顺序都是一直的了:1、2、我是 1、3。三、如何改变 Javascript

7、在页面的执行顺序1、利用 onload/输出值顺序是 2、1。需要注意的是,如果存在多个 winodws.onload 的话,只有最有一个生效,解决 这个办法是:window.onload = function()f();f1();f2();.利用 2 级 DOM 事件类型if(document.addEventListener) window.addEventListener(load,f,false); window.addEventListener(load,f1,false); . else window.attachEvent(onload,f); window.attachEven

8、t(onload,f1); . 2、IE 中可以利用 deferdefer 作用是把代码加载下来,并不立即执行,等文档 装载完毕之后再执行,有点类似 onload,但是没有 onload 那样的局限性,可以 重复使用,但是只在 IE 中有效,所以上面的例子可以修改成为/);document.write(); document.write(alert(2);) document.write(alert(“我是“ + tmpStr);); document.write(); / /这样 IE 就不报错了,输出值的顺序变成:1、3、2、我是 13、利用 Ajax。因为 xmlhttpRequest

9、能判断外部文档加载的状态,所以能够改变代码的加载顺 序。js 在 html 中的加载执行顺序 2010-03-23 16:04 1. 页面上的 Javascript 代码是 HTML 文档的一部分,所以 Javascript 在页面装载 时执行的顺序就是其引入标记的出现顺序, 标记里面的或者通过 src 引入的外部 JS,都是按照其语句出现的顺 序执行,而且执行过程是文档装载的一部分。2. 每个脚本定义的全局变量和函数,都可以被后面执行的脚本所调用。 变量的调用,必须是前面已经声明,否则获取的变量值是 undefined。 /3. 同一段脚本,函数定义可以出现在函数调用的后面,但是如果是分别在

10、两段代 码,且函数调用在第一段代码中,则会报函数未定义错误。 /4. document.write()会把输出写入到脚本文档所在的位置,浏览器解析完 documemt.write()所在文档内容后,继续解析 document.write()输出的内容, 然后在继续解析 HTML 文档。 /); document.write(); document.write(alert(2);) document.write(alert(“我是“ + tmpStr);); document.write(); /test.js 的内容是: var tmpStr = 1; alert(tmpStr); 在 Fir

11、efox 和 Opera 中的弹出值的顺序是:1、2、我是 1、3 在 IE 中弹出值的顺序是:2、1、3,同时浏览器报错:tmpStr 未定义 原因可能是 IE 在 document.write 时,并未等待加载 SRC 中的 Javascript 代码 完毕后,才执行下一行,所以导致 2 先弹出, 并且执行到 document.write(document.write(“我是“ + tmpStr)调用 tmpStr 时,tmpStr 并未定义,从而报错。 解决这个问题,可以利用 HTML 解析是解析完一个 HTML 标签,再执行下一个的 原理,把代码拆分来实现: /);/); document.write(alert(2);)document.write(alert(“我是“ + tmpStr);); document.write(); /这样 IE 下和其他浏览器输出值的顺序都是一直的了:1、2、我是 1、3。本文来自 CSDN 博客,转载请标明出处: http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号