zoukankan      html  css  js  c++  java
  • jQuery $(document).ready()和window.onload

    jQuery $(document).ready()和window.onload

    根据ready()方法的API说明http://api.jquery.com/ready/

    这个方法接收一个function类型的参数ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded.

    即当DOM加载完毕的时候,执行这个指定的方法.
      因为只有document的状态ready之后,对page的操作才是安全的.
      $(document).ready()仅在DOM准备好的时候执行一次.
     
      与之相比,load事件会等到页面渲染完成执行,即等到所有的资源(比如图片)都完全加载完成的时候.
      $(window).load(function(){…})会等整个页面,不仅仅是DOM,还包括图像和iframes都准备好之后,再执行.
      而ready()是在DOM准备好之后就执行了,即DOM树建立完成的时候.所以通常ready()是一个更好的时机.
     
      如果DOM初始化完成之后再调用ready()方法,传入的新的handler将会立即执行.
     
      注意:ready()方法多次调用,传入的handler方法会串联执行(追加).
      而JavaScript中,window.onload是赋值一个方法,即后面的会覆盖掉前面的.
     

    $(document).ready()的三种简写

     $( document ).ready( handler )
     $().ready( handler ) (this is not recommended)
     $( handler )

    window对象和document对象

     Window对象表示浏览器中打开的窗口: http://www.w3school.com.cn/jsref/dom_obj_window.asp
     Document对象表示载入浏览器的HTML文档: http://www.w3school.com.cn/jsref/dom_obj_document.asp
     

    Event对象

      Event即事件,代表了各种状态:http://www.w3school.com.cn/jsref/dom_obj_event.asp
      事件句柄使我们可以在事件发生的时候附加一些操作和处理,比如按钮点击事件发生的时候,进行什么什么操作.
      上面的参考链接中含有一个属性列表,对应各种事件,可以利用这些属性定义事件的行为.
      本文关注的onload就是其中一个事件.
     

    onload事件

      onload事件是在加载完成后立即发生.(注意其中的l是小写).
      支持该事件的标签是:
      <body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
      支持该事件的JavaScript对象是:
      image, layer, window.
      注意这里并没有document.

    onload使用解析

      最常用的就是window.onload, 会等到整个页面及各种资源都加载完成之后再执行后面赋值的function行为.
      另外,可以在标签中使用onload,比如:
    <body onload="inlineBodyOnloadTimeCounter();">
      其中inlineBodyOnloadTimeCounter()是一个自定义的JavaScript function.
      注意jQuery ready()的API文档中有这么一段: 
    The .ready() method is generally incompatible with the attribute. If load must be used, either do not use .ready() or use jQuery's .load() method to attach load event handlers to the window or to more specific items, like images.

    说明ready()方法和<body onload=“”>是不兼容的.

    注:文章来源于转载。

  • 相关阅读:
    闭包
    原型继承
    js时间戳转成日期格式
    常用正则表达式
    vue中如何实现pdf文件预览?
    Vue动画效果
    手把手教你封装 Vue 组件,并使用 npm 发布
    LCD驱动(FrameBuffer)实例开发讲解
    每个程序员都该阅读的书
    LCD platform_device(s5pv210)
  • 原文地址:https://www.cnblogs.com/wuxiang/p/4776332.html
Copyright © 2011-2022 走看看