domReady的理解 domReady是名为DOMContentLoaded事件的别称,当初始的HTML文档被完全加载和解析完成之后,DOMContentLoaded事件被触发,而无需等待样式表、图像和子框架的完全加载
事件会在页面或图像加载完成后触发(即所有元素的资源都下载完毕) 如果页面上有许多图片、音乐或 falsh 还没加载完成,onload 事件就会迟迟无法触发 所以出现了 DOM Ready 事件 熟悉 jQuery的人,都知道 DomReady...事件 $(document).ready(function(){ alert("jQuery 的 DOM 准备完毕,资源还没加载完"); }) DomReady DomReady 事件就是在 DOM...所以目前所有的 hack 方法都是为了让 IE6,7,8支持 DOM Ready 事件 下面代码可以发现 jQuery 的 ready 事件稍微早于 DOMContentLoaded 事件,但都是实现了 domready...document.addEventListener('DOMContentLoaded', function(){ alert("DOM准备完毕,资源还没加载完"); }, false); // jQuery 的 domready
一、在介绍DomReady之前,先了解下相关的知识 1、HTML是一种标记语言,告诉我们这页面里面有什么内容,但是行为交互则要通过DOM操作来实现,但是注意:不要把尖括号里面的内容看作是DOM!...当前页面上的所有的HTML标签都转换成DOM节点,这就叫DOM树建完,简称为DOMReady. 3、浏览器是自上向下,从左往右,HTML字符串标签一个一个的读入,页面上会有很多的标签,响相应的会生成很多的对应的...DomReady还可以满足用户提前绑定事件的需求,因为有时页面图片资源过多, window.onload迟迟不能触发,这时若还没有绑定事件,用户点哪个按钮都没有反应。...因此主流框架都引入domready机制, 并且废了很大的劲兼容很多的浏览器 readyState 属性返回当前文档的状态(载入中……)。...= "domReady2" document.body.appendChild(p); });
「DOMReady」 上古时期(指距今 10+ 年前的 jQuery 纪元),我们开发网页还停留在编写静态页面结构,用 JS 脚本对 DOM 进行直接操作,添加删除一些额外页面元素上。...此时,DOMReady 基本就可以满足计算页面加载完成时间的需求,DOMReady (在 DOM 事件中是 DOMContentLoaded)代表页面文档完全加载并解析完毕, 一般包含HTML文档分析以及...一般在页面 header 中打个时间戳,再在 jQuery 的 domReady 事件中打个时间戳,我们就可以计算到大致的 DOMReady 耗时了。
).ExcerptLength); return request; } } } Require配置与系统配置 这里我用到的Require的几个常用插件:domReady.../Libs/text', 'r/domReady': './Libs/domReady', 'r/normailize': '....bootstrap-3.2.0/dist/css/' }, shim的配置略过; 然后就是require的调用入口了,从这里启动整个前端应用: require(['lib/jquery', 'r/domReady...lib/bootstrap/css/bootstrap.css', 'lib/bootstrap', ], function ($, domReady, _, config, template) { ...domReady(function () { var rootContainer = $("body").find("[data-container='root']");
和onLoad,我们在写JS的时候,很多时候都需要在domReady之后执行查找元素,或者onLoad的时候对一些图片进行懒加载或者统计一些数据上报等。...在这里就不解析domReady和onLoad的基本知识了,那么我们就基于这两个基本指标,如果初级的判断页面的健康情况。...我们用租租车的首页去看整个首页的加载性能: 最最最简单的方式就是看右下角,chorme已经给出了整个页面的domReady和onLoad的时间了。...好像看起来还可以,不到1秒就domReady了,差不到4秒就onload了,其实已经说不错了,那么最初步的判断就可以从这里看到整体的性能了,那么我们进一步的去看细节的部分。...中级页面健康判断 我们先看第一步部分,domReady从开始到完成发生了什么,可以看都我们使用的http是2.0的版本,这样前端就可以尽情的切割代码了,可以看到有10个文件是同步下载的,也只有其中2个文件是需要进行
}); dom-construct主要包含如下方法: 1.toDom() require(["dojo/dom-construct", "dojo/dom", "dojo/on", "dojo/domReady.../td> 2.place() require(["dojo/dom-construct", "dojo/dom", "dojo/on", "dojo/domReady...domConstruct.empty("someId"); }); 5destory() require(["dojo/dom-construct", "dojo/dom", "dojo/on", "dojo/domReady
性能指标 目前业界常用的指标就是:白屏、首屏、domready和pageloaded四个指标,在usual-index.html中, 我们通过performance API获取到响应的指标值。...fmp = Math.ceil(performance.getEntriesByName('hero img displayed')[0].startTime); domready...ready"); }); window.onload = ()=> { performance.mark("page loaded"); // get the domReady...time const domReady = Math.ceil(performance.getEntriesByName('dom ready')[0].startTime);
用户等待整个页面加载完成的时间 times.loadPage = t.loadEventEnd - t.navigationStart; // * DOM 树解析时间 times.domReady...window.performance.clearMeasures('measureRandomFunc'); window.performance.clearMeasures(); 使用 measure 计算 domReady...domReadyTime = t.domComplete - t.responseEnd; console.log(domReadyTime) // 新方案 window.performance.measure('domReady...','responseEnd','domComplete'); var domReadyMeasure = window.performance.getEntriesByName('domReady')
"dojox/charting/plot2d/Columns", "dojox/charting/axis2d/Default", "dojo/domReady..."dojox/charting/plot2d/Columns", "dojox/charting/axis2d/Default", "dojo/domReady..."dojox/charting/action2d/MoveSlice" , "dojox/charting/widget/Legend", "dojo/domReady..."dojox/charting/action2d/MoveSlice" , "dojox/charting/widget/Legend", "dojo/domReady...dojox/charting/plot2d/StackedColumns", "dojox/charting/themes/Wetland" , "dojo/domReady
新创建的核心实体 示例: var canvas = oCanvas.create({ canvas: "#canvas", background: "#0cc" }); 3、domReady...(function) 如果你的脚本是运行于一个canvas元素上的,可以使用 domReady() 方法。...示例: oCanvas.domReady(function () { var canvas = oCanvas.create({ canvas: "#canvas",
/script> var ws = null, wo = null; var scan = null, domready...domready) { return; } // 获取窗口对象 ws = plus.webview.currentWebview(); wo = ws.opener...; } // 监听DOMContentLoaded事件 document.addEventListener('DOMContentLoaded', function() { domready
timingGather.response = perforceTiming.responseEnd - perforceTiming.responseStart; timingGather.domReady...performanceInfo.request}`); console.log(`响应接收耗时:${performanceInfo.response}`); console.log(`DOMReady...耗时:${performanceInfo.domReady}`); console.log(`页面加载耗时:${performanceInfo.load}`); }; wrapper.prepareAPI
首先我们必须要搞清楚你当前是优化首屏慢(白屏时间长),可交互时间长,在现在的前端开发中,往往我们通过performance来查看页面的onload时间或者domReady时间其实并不可靠。...如果你是白屏优化,那么就要看html的加载时间以及domReady时间,找到导致domReady时间长的原因是哪里?...但是会阻塞渲染 遇到css同步加载,但不会阻塞解析,但是会阻塞渲染 遇到img会同步加载,但是不会阻塞解析和渲染 遇到js,默认同步加载,并阻塞渲染,运行完js后才继续渲染 最后html标签渲染完,触发domReady
前端性能监控指标 前端性能统计的数据大致有以下几个: 白屏时间:从打开网站到有内容渲染出来的时间节点; 首屏时间:首屏内容渲染完毕的时间节点; 用户可操作时间节点:domready触发节点; 总下载时间...domInteractive并非DOMReady,它早于DOMReady触发,代表html文档解析完毕(即dom tree创建完成)但是内嵌资源(比如外链css、js等)还未加载的时间点; domContentLoadedEventStart...domContentLoadedEventEnd:代表DOMContentLoaded事件完成的时间节点,此刻用户可以对页面进行操作,也就是jQuery中的domready时间; domComplete...loadEventEnd分别代表onload事件触发和结束的时间节点 2.2.2 计算性能指标 可以使用Navigation.timing 统计到的时间数据来计算一些页面性能指标,比如DNS查询耗时、白屏时间、domready...= responseEnd - responseStart 解析dom树耗时 = domComplete - domInteractive 白屏时间 = domloadng - fetchStart domready
Javascript框架设计一书中的结论,得出种子模块主要负责的是以下内容: (1)、对象的扩展 (2)、数组化 (3)、类型判定 (4)、简单的事件绑定与卸载 (5)、无冲突处理 (6)、模块加载 (7)、domready
代码如下: 1234567891011121314151617181920212223242526272829303132333435 require(['domready!'...overlay' }); $(".amap-sug-result").css("z-index", 9999);}) 忽略function里面的具体逻辑,加载如下: 123456 require(['domready...commuteGo'], function (doc, $, AMUI, mapController, city, commuteGo){//todo}); 第一个参数为一个数组,表示所依赖的模块,此处为[‘domready
给程序一个统一的入口===== window.onload 或DOMReady (先把所有函数定义部分放入 init函数中,最后再加载 init()即可使用 如:在DOM节点加载进来之前就调用会出错...window.onload要等到网页元素全部加载才进行 而DOMReady则只要页面内所有DOM节点皆全部生成即可进行。 ...DOMReady 方式原生JS并不支持,要使用第三方类库(JS框架) 如jQuery的方式: $(document).ready(init); // init() 是一个函数... ...当然了,我们也可以用原生JS模拟DOMReady ,事实上很简单,就是: function init(){ alert(
base/event", "dojo/on", "dojo/dom", "dojo/keys", "dojo/domReady
领取专属 10元无门槛券
手把手带您无忧上云