关于javascript的几个小实验
2015-06-12 22:25
453 查看
1,外部的js文件会不会阻塞html的解析和渲染 ?
猜想:不会的, 现代的浏览器应该已经做了优化。实验方法:在页面中放一段执行时间超过2秒的js代码。然后在阻塞代码的后面判断能不能去的后续的dom元素。
靠!没想到是这样的结果! Script文件果真阻塞了dom的解析。 浏览器真的是一个文件一个文件的解析的。
实验代码
外部js脚本
var begin = new Date();
var end = new Date();
while((end.valueOf() - begin.valueOf())<(1000*15)){
end = new Date();
}
var testDom = document.getElementById("test");
console.log(testDom.innerHTML);
Html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<script src="testHelloWorld.js"></script>
</head>
<body>
<div id="test">
这是一个测试dom
</div>
</body>
</html>
2,是不是dom元素加载,解析完后就会触发onload函数呢?
猜想:不会! 有一次,我在dom文档的最后加了一段时间标记。然后又在onload事件的开始加了一个时间标记。 然后算的之间的时间间隔达一秒钟。我不知道浏览器在这个时间段中干嘛了。
猜想:浏览器一定是先把dom文档解析完后,然后等待已经请求的资源,然后按续解析他们。
试验方法:在html的最后记下时间戳,然后在onload的最后记下时间戳。
这次当页面加载完后 马上就执行onload中的时间了。 而我们公司的项目却要1秒后才执行。 不知道为什么
相关代码
Js代码
Html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
</head>
<body>
</body>
<script>
window.begin = new Date();
window.onload = function(){
var end = new Date();
console.log(end.valueOf() - begin.valueOf());
}
</script>
</html>
相关文章推荐
- Android之使用Http协议实现文件上传功能
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- 通晓网络测试常用命令
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- 爆炸式的JS圆形浮动菜单特效代码
- js select常用操作控制代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- Nodejs学习笔记之测试驱动
- 仿51JOB的地区选择效果(可选择多个地区)
- js身份证验证超强脚本