关于页面加载

DOMContentLoaded

执行次序

DOMContentLoaded  -> angular启动 ->  onload

  jQuery的 $(document).ready() 方法,就是对DOMContentLoaded事件的监听(其内部会通过模拟DOMContentLoaded事件和监听onload事件来提供降级方案)。通常推荐在DOMContentLoaded事件触发的时候为DOM元素注册事件。

动态插入script

假设首页页面代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script>
        function sleep(milliSeconds){
            let startTime = new Date().getTime();
            while(new Date().getTime() < startTime + milliSeconds){}
        }
        function log(msg){
            console.log(new Date().getSeconds() + "s - " + msg);
        }
        log("start")
    </script>
    <script src="1.js"></script>
    <script src="2.js"></script>
</head>
<body>
</body>
</html>

1.js

sleep(3000);

2.js

document.write(‘<script src="3.js"></script>‘);
window.addEventListener("DOMContentLoaded",function(){
    log("DOMContentLoaded");
});
window.onload = function(){
    log("onload");
};

3.js

log(‘3.js开始执行‘);
sleep(3000);

运行结果:

生成的html如下:

结论:

  DOMContentLoaded 会等待js脚本【包括scipt和动态加入的script标签】执行完后再触发事件回调

时间: 2024-10-04 12:04:10

关于页面加载的相关文章

Jquery页面加载效果

1.说明 Jquery页面加载可实现异步请求时提示"请稍后,正在加载..."效果,同步请求不可用(即ajax async: false).本文地址:http://www.cnblogs.com/lengzhan/p/6423312.html 2.代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

JS 页面加载触发事件 document.ready和window.onload的区别

document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件: 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件): 二是onload,指示页面包含图片等文件在内的所有元素都加载完成. 1.Dom Ready 使用jq时一般都是这么开始写脚本的: $(function(){ // do something }); 例如: $(function() { $("a").click(function() { alert(&

页面加载后累加,自加1&amp;&amp;判断数字是否为两位数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js数据显示在文本框中(页面加载显示和按钮触动显示)

web代码如下: <!DOCTYPE html> <html> <head> <title>jsTest02.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is

页面加载完成后表单获得焦点

当页面加载完成后,输入框获得焦点的jquery写法: $(document).ready(function(){ $("#recordId").focus(); }); 页面如图:每次页面加载完成后"体检编号"都会获得焦点 页面加载完成后表单获得焦点,布布扣,bubuko.com

webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载

原文:https://my.oschina.net/u/2344787/blog/400507?p={{page}} 引言: 在使用webdriver的get方法打开页面时,可能页面需要加载的元素较多导致加载时间很长,而时间过长会导致后面的操作无法进行,甚至直接报错:所以在页面加载到一定时间,实际需要定位的元素很大可能上已经加载出来时,需要停止页面的加载,进而进行下面的操作: 例如:get 汽车之家页面时会等待很长时间,其实页面基本元素都已加载,可进行后续操作 可以通过set_page_load

jQuery 页面加载初始化

jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(function(){ alert("第一种方法."); }); 第二种: $(function(){ alert("第二种方法."); }); 第三种: jQuery(function($) { alert("第三种方法."); }); ps;不用jQuery,

jQuery页面加载初始化常用的方法

在做项目时经常会遇到这样的问题:页面加载完毕自动执行action加载数据.这时候估计就要想起jquery+ajax. 方式一: $(document).ready(function(){ $.ajax({ url:'你的action', data:{需要传的参数,如果是get方式,jquery会自动将参数组装到你的url后}, success:function(resultdata){ } }); }); 方式二: $(function(){ alert("使用ajax请求数据");

jQuery页面加载初始化的几种方法

在新的公司里工作,最近一直在做关于js和jQuery的开发,下面三种是最常见的jquery页面加载初始化的方法 第一种,去年实习时的公司用的是这样 $(function(){ //定义局部变量 //var a; ... init(); }); function init(){ alert(123); } 第二种,和上面的写法类似 jQuery(function($){ //定义局部变量 //var a; ... init(); }); function init(){ alert(123); }

利用Navigation Timing测量页面加载时间

最近在看一本名为<web性能实践日志>的书籍,其中第十三章"网络计时"中介绍了一种比较新的计算页面各部分加载时间方法,这也是W3C Web性能工作小组正在做的事情,接下来我就给大家大概介绍一下: 首先先撇开这篇文章所要介绍的,如果要你来写一段代码来计算整个页面加载的时间的话,我们一般都会这样做:获得页面开始加载的时间和结束加载的时间,两个一减便是页面加载的时间了,没错,代码如下: 1 <html> 2 <head> 3 <script type