• js的onload


    区别一:执行时间不同

    • window.onload()是在页面所有元素(包括图片,引用文件)加载完成后再执行。也就是说页面所有的东西都加载完成之后再加载。

    • $(document).ready()是DOM结构绘制完毕就执行,不必等到加载完毕,意思就是,DOM数加载完毕,不必等到页面中的图片或其他外部文件都加载完毕。所以$(document).ready()执行更快

    区别二:编写个数不同

    • window.onload()同时编写多个,在执行的时候,只会执行最后一个。也就是说只执行一次。
    • $(document).ready()编写多个,就执行多个

    区别三:有无简写

    • window.onload()没有简写的方式
    • $(document).ready()简写 $(function(){})
    <body>
        <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        </ul>
     </body>
    <script>
    //只会执行最后一个
    window.onload = function(){
      console.log('window.onload加载1');
    }
    window.onload = function(){
      console.log('window.onload加载2');
    }
    window.onload = function(){
      console.log('window.onload加载3');
    }
    
    //全部都会执行
    $(document).ready(function(){
      console.log('$.ready加载1');
    })
    $(document).ready(function(){
      console.log('$.ready加载2');
    })
    $(document).ready(function(){
      console.log('$.ready加载3');
    })
    </script>
    

    image.png

    注意:

    1. 如果需要获取DOM绑定元素的属性值时,最好使用window.onload,因为他是在所有元素加载完毕才执行,如果使用$(document).ready,DOM已经加载,但是DOM绑定的元素属性没有加载,所以属性不生效。
    2. 要解决这个问题,可以使用 Jquery 中另一个关于页面加载的方法 ---load() 方法。
    3. Load() 方法会在元素的 onload 事件中绑定一个处理函数。如果处理函数绑定给 window 对象,则会在所有内容 ( 包括窗口、框架、对象和图像等 ) 加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。
    //jQuery代码
    $(window).load(function(){
    
    })
    //等价于
    window.onload = function(){
    }
    

    当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。

    当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。

    我们需要给一些元素的事件绑定处理函数。但问题是,如果那个元素还没有加载到页面上,但是绑定事件已经执行完了,是没有效果的。这两个事件大致就是用来避免这样一种情况,将绑定的函数放在这两个事件的回调中,保证能在页面的某些元素加载完毕之后再绑定事件的函数。

    当然DOMContentLoaded机制更加合理,因为我们可以容忍图片,flash延迟加载,却不可以容忍看见内容后页面不可交互。

    在没有出现DOMContentLoaded事件出现以前,许多类库中都有模拟这个事件的方法,比如jQuery中著名的 $(document).ready(function(){});


     

  • 相关阅读:
    不要对父母说的十句话
    25句世界上最經典的話
    奥巴马(Obama)获胜演讲全文[中英对照]+高清视频下载
    【心理测试】男人眼中女人哪里最性感?
    一张图看出你是用左脑还是右脑
    我是有原则的~~(笑话转贴)
    各行各业常用大用大谎言
    你知道我今天为啥要来上班吗?
    女性抽烟腰会变粗?
    心理学家揭秘人临死时的感受
  • 原文地址:https://www.cnblogs.com/wjlbk/p/11783845.html
Copyright © 2020-2023  润新知