• $(document).ready() $(window).load区别


    document.ready和onload的区别——JavaScript文档加载完成事件
    页面加载完成有两种事件
    一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)
    二是onload,指示页面包含图片等文件在内的所有元素都加载完成。

    用jQ的人很多人都是这么开始写脚本的:
    $(function(){
    // do something
    });
    其实这个就是jq ready()的简写,他等价于:

    $(document).ready(function(){
    //do something
    })
    //或者下面这个方法,jQuer的默认参数是:“document”;

    $().ready(function(){
    //do something
    })
    这个就是jq ready()的方法就是Dom Ready,他的作用或者意义就是:在DOM加载完成后就可以可以对DOM进行操作。
    一般情况先一个页面响应加载的顺序是:域名解析-加载html-加载js和css-加载图片等其他信息。
    那么Dom Ready应该在“加载js和css”和“加载图片等其他信息”之间,就可以操作Dom了。


    1.window.onload方法

    ⑴执行时机:
    在网页中所有元素(包括元素的所有关联文件)完全加载到浏览器后才执行,即JavaScript 此时可以访问网页中的所有元素。
    window.οnlοad=function(){ $(window).load(function(){
    //编写代码 等价于 //编写代码
    } });

    ⑵多次使用:
    JavaScript的onload事件一次只能保存对一个函数的引用,他会自动用最后面的函数覆盖前面的函数。
    function one(){

    alert("one");

    }

    function two(){

    alert("two");

    }

    window.οnlοad=one;

    window.οnlοad=two;

    //运行代码后只有 two

    2.$(document).ready()方法

    ⑴执行时机:在DOM完全就绪时就可以被调用。(这并不意味着这些元素关联的文件都已经下载完毕)
    举个例子:$(document).ready()方法明知要DOM就绪就可以操作了,不需要等待所有图片下载完毕。

    ⑵多次使用:
    function one(){

    alert("one");

    }

    function two(){

    alert("two");

    }

    $(document).ready(function(){

    one();

    });

    $(document).ready(function(){

    two();

    });

    //运行代码后

    //先是:one

    //先是:two

    转载:https://www.cnblogs.com/eric-qin/p/4325750.html

    JQ中的$(document).ready()大家应该用的非常多,基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).load相对出现的次数就很少了,下面为大家介绍一下两者的区别与他们的执行顺序

    一般情况下一个页面响应加载的基本顺序是:域名解析 -> 加载html -> 加载js和css -> 加载图片等其他信息
    那么我们在编写JS脚本时什么情况下使用$(document).ready()又在什么情况下使用$(window).load呢,我们先来了解一下两者的功能

    一、$(document).ready()

    从字面的意思上理解,就是文档准备好了。也就是浏览器已经加载并解析完整个html文档,dom树已经建立起来了,然后执行此函数

    原生JavaScript中的写法如下:

    1
    2
    3
    document.ready=function(){
     alert("ready");
    }

    jQuery中的写法如下:

    1
    2
    3
    $(document).ready(function(){
     alert("ready");
    });

    1
    2
    3
    $(function(){
     alert("ready");
    });

    二、$(window).load

    在网页中所有元素(包括页面中图片,css文件等所有关联文件)完全加载到浏览器后才执行

    原生JavaScript中的写法如下:

    1
    2
    3
    window.onload = function(){
     alert("onload");
    };

    jQuery中的写法如下:

    1
    2
    3
    $(window).load(function(){
     alert("onload");
    });

    两者的区别在于:

    1.执行时间不同

    $(document).ready()是在页面完成HTML的加载并建立了DOM树之后就开始执行,但这并不代表页面的所

    有数据已经全部加载完成,一些大的图片有会在建立DOM树之后很长一段时间才行加载完成,而

    $(window).load()就是整个页面已经加载完毕后才执行,包括图片等一些关联文件。

    2.可以被执行的次数不同

    $(document).ready()可以在JavaScript代码中出现多次,并且里面的函数或者代码都可以执行;而$(window).load()只能在JavaScript代码中出现一次,如果有多个$(window).load(),那么只有最后一个$(window).load()里面的函数或者代码才会执行,之前的$(window).load()都将被覆盖;

    3.执行的效率不同

    如要在dom的元素节点中添加onclick属性节点,这时用$(document).ready()就要比用$(window).load()的效率高;但是在某些时候还必须得用$(window).load()才行

    总结一下就是:$(window).load()在$(document).ready之后执行,且页面中所有内容全部加载完成后才会执行,两者的使用时机一目了然,大家可以自行决定。

  • 相关阅读:
    Spring scope注解
    classpath与clsspath*
    Hadoop 5 Hbase 遇到的问题
    Hadoop 3
    Hadoop 4 MapReduce
    Hadoop 2
    Hadoop 1
    毕业设计---jQuery动态生成的a标签的事件绑定
    毕业设计---json,Struts,ajax以及JQuery简单案例
    基于SSH框架的学生选课质量属性分析
  • 原文地址:https://www.cnblogs.com/hongyumao/p/14268029.html
Copyright © 2020-2023  润新知