作为一个程序员,能写出简单有效的代码是很好的。
当程序的功能增多,逻辑变得复杂,如何将代码一块块地拼起来,讲究的就是软件架构。经过多年的实践和经验累积,我们综合了不少建立软件架构的规则和方法。
有些人常讲架构理论之类的,虽是倒背如流,到了真正写代码的时候,却是一塌糊涂。这可能是因为他们缺少实践经验,也有可能他们读书没有完全的体会。
到了WWW这个没有compilation error(编译错误)的世界,好的程序架构更显得重要。
- 浏览器加载HTML页面的次序:从上到下(
<script>
加上async
除外)
<!doctype html>
<html>
<head>
<script type="text/javascript">
// executes immediately: cannot find "_pageTitle"
document.getElementById("_pageTitle").innerText = "A: Hello World";
</script>
</head>
<body>
<h1 id="_pageTitle">Loading javascript...</h1>
<script type="text/javascript">
// executes immediately: ok
document.getElementById("_pageTitle").innerText = "B: Hello World";
</script>
</body>
</html>
页面显示:
B: Hello World
body
的onload
事件是当body
里静态的element完全加载后才触发的
<!doctype html>
<html>
<head>
<script type="text/javascript">
// executes on body element event: onload
function bodyOnload() {
document.getElementById("_pageTitle").innerText = "A: Hello World";
}
</script>
</head>
<body onload="bodyOnload();">
<h1 id="_pageTitle">Loading javascript...</h1>
<script type="text/javascript">
// executes immediately
document.getElementById("_pageTitle").innerText = "B: Hello World";
</script>
</body>
</html>
页面显示:
A: Hello World
其实,B: Hello World
并不是没有出现,至少它闪现过。