本帖最后由 zhjzh1016 于 2009-10-05 14:33:43 编辑

解决方案 »

  1.   

    window.loaded() 这句话好像是错了。所以程序运行到这里就不往下运行了,但是这句话之前的都会正常运行,js好像也是解释型脚本语言。是一句一句解释运行的,js的异步我的理解是 事件激活函数之间的异步,函数和函数之间的异步,我在写ajax的时候 回调函数和发送请求的函数之间就是异步的。异步和同步的概念应该应该明确一下,什么是异步,什么是同步。程序里所说的异步好像和你自己理解的异步概念不同。程序里的异步机制,例如:a1() 、 a2() ,两个函数。a1()执行的时候,a2()也可以执行。也就是说你在页面中通过一个按钮激活a1()函数运行时,在a1()还没有运行完,你在通过另一个按钮激活a2(),让a2()也执行。这是异步。而不是你所理解的,
    while ( ! window.loaded() ) { } 这句话运行的时候还没有运行完,它的下一句话
    document.getElementById(“body”).style.border = "1px solid #000";也继续执行。这样理解是错误的。js中 每句话之间是有顺序的,从上到下运行的。一句一句解释。程序里的同步概念,例如:a1() 、 a2() ,两个函数。a1()执行的时候,a2()是不可以执行。也就是说你在页面中通过一个按钮激活a1()函数运行时,在a1()还没有运行完,你在通过另一个按钮激活a2(),让此时a2()是不会运行的,a2()必须等待a1()执行结束后才执行。这是同步。
      

  2.   

    谢谢你耐心细致的回答,while ( ! window.onload() ) { }
    这句话是想判断页面是否完全载入完全,但是运行的话会陷入死循环是什么原因呢?