html+javascript 执行顺序问题

html-css09

html+javascript 执行顺序问题,第1张

Javascript是执行顺序是至上而下的,除非特别说明, Javascript代码不会等到页面加载完毕后才执行。

例如:

一个网页里含有以下HTML代码

<div id="ele">welcome to www.jb51.net</div>

如果在这行HTML代码前,加入如下Javascript代码:

<script type="text/javascript">

  document.getElementById('ele').innerHTML= 'welcome to my blog'

</script>

运行该页面,会得到这样的错误信息:“document.getElementById(‘ele') is null。”原因是,当上面的javascript运行时,页面上还没有ID为‘ele'的DOM元素。

解决办法有两种:

1. 把javascript代码放在HTML代码之后:

 <div id="ele">welcome to www.jb51.net</div>

<script type="text/javascript">

  document.getElementById('ele').innerHTML='welcome to my blog'

</script>

2. 等到在网页加载完毕后,运行该javascript代码。可以使用传统的解决办法(load):首先加HTML的body加入“<body load="load()”>,”然后在load()函数里调用上述javascript代码。这里要着重介绍的是用jQuery来实现:

<script>

$(document).ready(function(){

   document.getElementById('ele').innerHTML= 'welcome to my blog'

})

</script>

//当然,既然用到了jQuery,更简单的写法是:

<script>

$(document).ready(function(){

   $('#ele').html('welcome to my blog') //这里也可用.text()方法

})

</script>

可以把上述jQuery代码放在页面的任何位置,它总是等到页面加载完毕后才执行。

过去一直以为,一个容器如果没有读到自己的结束标签,那么这个容器就不会在浏览器中显示出来。今天测试了下,却发现浏览器在读到一个容器的开始标签的时候,就可以显示该容器了。关于浏览器如何一个一个的paint HTML中的元素,如果flow它们,这个过程还需要进一步了解。当然,也可以不管过程,只看加载的结果,通过pagespeed和Yslow来优化自己的网页。个人在做布局的时候,还是会秉承一条原则:尽量让一个父容器小一些!

用于启动网页的html标签不分先后顺序。根据查询相关公开信息,用于启动网页的html标签不分先后顺序,标记名与属性、属性与属性之间均以空格分开。省略该属性则取默认值。采取键值对的格式key="value"的格式。