全局Timestamp管理器 检测js执行时间
随手写了个小工具,主要为了测试不同混淆程度的javascript脚本的加载速度
1. [代码]Timestamp.js
(function() {
if (typeof this.Timestamp == 'undefined') {
/**
* Global timestamp manager
* @author Janpoem
* created at 2011.03.30
*/
this.Timestamp = (function() {
var pool = {
'page_init': new Date()
};
return {
add: function(flag) {
pool[flag] = new Date();
},
get: function(flag) {
return typeof flag == 'undefined' ? pool : (pool[flag] ? pool[flag] : pool);
},
diff: function(to, diff) {
if (!diff)
diff = to, to = 'page_init';
return (pool[to] && pool[diff]) ? pool[diff] - pool[to] : 0;
}
}
}) ();
}
}) ();
2. [代码]实际用例
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MooTools Test Page</title>http://www.huiyi8.com/donghua/
<script type="text/javascript">flash
(function() {
// 由于为了测试单独加载某个脚本文件的实际速度,所以该对象的代码被直接加载写在页面中
if (typeof this.Timestamp == 'undefined') {
/**
* Global timestamp manager
* @author Janpoem
* created at 2011.03.30
*/
this.Timestamp = (function() {
var pool = {
'page_init': new Date()
};
return {
add: function(flag) {
pool[flag] = new Date();
},
get: function(flag) {
return typeof flag == 'undefined' ? pool : (pool[flag] ? pool[flag] : pool);
},
diff: function(to, diff) {
if (!diff)
diff = to, to = 'page_init';
return (pool[to] && pool[diff]) ? pool[diff] - pool[to] : 0;
}
}
}) ();
}
}) ();
</script>
<script type="text/javascript" src="all.js" onload="Timestamp.add('load_complate');"></script>
<script type="text/javascript">
Timestamp.add('process_here#1');
</script>
</head>
<body>
<div id="mt_test"></div>
<script type="text/javascript">
console.log(
Timestamp.diff('load_complate'), // download a script file speed
Timestamp.diff('process_here#1'), // html parse process here
Timestamp.diff('load_complate', 'process_here#1')
);
</script>
</body>
</html>
最新文章
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
- Android给listview的item设定高度
- flash的dragonbone插件导入cocos2d的注意事项
- Python深入学习笔记(二)
- setNeedsDisplay、layoutSubViews
- IE6不支持<;a>;标签以外元素的hover的解决方案
- SQL实现 模糊查询(转)
- angular+ionic+cordova(实战项目开发中,持续更新自己学到的和遇到的)
- 【Unity Shaders】Transparency —— 使用渲染队列进行深度排序
- pdf文件下载水印添加的中文与空格问题解决
- android listView功能简介
- ActiveMQ安装使用
- VSFTP 配置虚拟用户
- javap——查看class文件的方法
- 1.5.6、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用Cloudera Manager模板创建CDH群集)
- centos7下设置opencv环境变量
- [PowerShell Utils] Remotely install Hyper-V and Failover Cluster feature on a list of windows 2012 servers
- 俞军的PM12条
- 《C++ Primer Plus》12.7 队列模拟 学习笔记
- Install fail! Error: [@@babel/runtime/core-js/object/keys]
热门文章
- python之GUI自定义界面设计 2014-4-10
- 大数据学习——hdfs客户端操作
- FZU-1881-Problem 1881 三角形问题,打表二分查找~~
- 【BZOJ1834】network 网络扩容(最大流,费用流)
- 洛谷——P2865 [USACO06NOV]路障Roadblocks
- [Bzoj3233][Ahoi2013]找硬币[基础DP]
- OpenGL蓝宝书第七章:立体天空和纹理折射、双纹理(下)
- FreeFileSync同步定时执行
- 深入理解 C 指针阅读笔记 -- 第六章
- [React] {svg, css module, sass} support in Create React App 2.0