onload、DOMContentLoaded与性能问题

onload事件 DomContentLoaded


 

1、onload事件

onload事件一般在所有的文档内容加载完成后触发,如果网页中图像、脚本较多,会等待这些文件都加载完毕,才会触发onload事件。实际上,这会影响用户体验,在文件未加载完毕,网页处于锁定状态。为了避免这一情况,W3C标准中有一个DOMContentLoaded事件,只要文档标记(即各种标签元素)载入完毕,就会触发,而不必等待图片下载完毕。

jQuery使用者,你可能会经常使用$(document).ready();或者$(function(){}) 这都是使用了DOMContentLoaded事件

 

2、DOMContentLoaded

该事件并不是所有浏览器都支持,ff opera chrome支持,其他暂不支持。 
/** IE中替代方案 **/ 
在文档最后附加一个脚本,通过这个脚本载入完成的标志来判断是否所有文档标记加载完毕。具体地:

 
  1. document.write("<script src='javascript:void(0)' id='ie_load' defer> </script>");
  2. var script=document.getElementById('ie_load');
  3. script.onreadystatechange=function (){
  4. if(this.readyState=='complete'){
  5. //执行load事件
  6. ........
  7. }
  8. };
 

3、使用场景

一般在涉及对图片相关属性的操作以及操作时,为了提高用户体验,可以不必等所有图片加载完成才执行脚本,这时可以使用DOMContentLoaded事件。 
否则的话,使用onload事件

onload、DOMContentLoaded与性能问题的更多相关文章

  1. window.onload、DOMContentLoaded和$(document).ready()

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  2. 面试题HTML +CSS

    HTML+CSS部分1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素?行内元素:和有他元素都在一行上,高度.行高及外边距和内边距都不可改变,文字图片的宽度不可改变,只能容纳文本或者其他 ...

  3. js知识体系的梳理一

    今天简单的总结了js的一些东西,梳理下整个体系,每一次的总结都会有不同的收获:js总结一一.[获取元素]: 1.通过ID: var oBtn=document.getElementById('btn1 ...

  4. 前端基础面试题(JS部分)

    1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...

  5. 前端基础面试题(js部分)

      前端基础面试题(JS部分)   1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String值类 ...

  6. ducument.ready不生效的问题 ruby on rails

    rails web app页面之间的跳转的时候使用ducument.ready只有在再次加载的时候才生效, 因为rails用了turbolinks, https://github.com/turbol ...

  7. HTML与JS

    网页显示过程中的处理流程: 分析HTML 构造DOM树 载入外部JS文件及CSS文件 载入图像文件等外部资源 JS在分析后开始运行 全部完成 JS的表述方式及其执行流程: <script> ...

  8. ready与onload的性能

    <!DOCTYPE html> <html> <head> <title>ready与onload的性能</title> <meta ...

  9. DOMContentLoaded和jquery的ready和window.onload的顺序

    document.addEventListener('DOMContentLoaded', function(){ alert(1) }); window.onload=function(){ ale ...

随机推荐

  1. centos 6.5系统下安装ibus及设置开机自启动

    先说一下系统环境:centos 6.5,然后我是以root身份执行的,没有权限的用户参见sudo用法 第1步:查找并安装ibus安装包,命令如下: 找到一行: ibus-pinyin.x86_64 : ...

  2. 超级密码 hdu1226 bfs

    超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. PowerBI开发 第七篇:数据集和数据刷新

    PowerBI报表是基于数据分析的引擎,数据真正的来源(Data Source)是数据库,文件等数据存储媒介,PowerBI支持的数据源类型多种多样.PowerBI Service(云端)有时不直接访 ...

  4. Linux 独立安装subversion-1.8.18

    一.所需软件包 1.apr-1.4.6.tar.gz 下载地址:http://apr.apache.org/   2.apr-util-1.4.1.tar.gz 下载地址:http://apr.apa ...

  5. Ubuntu16.04 install eclipse-jee-oxygen-R-linux-gtk-x86_64

    下面如何在Ubuntu16.04 下面怎么下载Java EE并创建在桌面快捷上下载Java EE:eclipse下载Java EE官网:http://www.eclipse.org/downloads ...

  6. Python实战之列表list的详细简单练习2

    name_list = ['zhangsan','lisi','wangermazi','xiaotaoqi'] print(name_list) # name_list.append("w ...

  7. Java面向对象 集合(下)

      Java面向对象 集合(下) 知识概要:               (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...

  8. Oracle_11gR2_概念_第06章_数据字典和动态性能视图_英文词汇

    decode 解码 be intend for  适应 distinguished 显著的,突出的 implied 隐含的 abbreviated     简短的 enabled roles    已 ...

  9. 【特效】hover图片立体翻转

    hover图片翻转效果二::绕Y轴旋转90度,注意父层要加透视属性perspective,这样才能看出立体效果 html: <ul class="list-img"> ...

  10. 【转载】CSS direction属性简介与实际应用

    文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=5 ...