全局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>
全局Timestamp管理器 检测js执行时间的更多相关文章
- 从零开始山寨Caffe·叁:全局线程管理器
你需要一个管家,随手召唤的那种,想吃啥就吃啥. ——设计一个全局线程管理器 一个机器学习系统,需要管理一些公共的配置信息,如何存储这些配置信息,是一个难题. 设计模式 MVC框架 在传统的MVC编程框 ...
- Node.js包管理器:
Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...
- node.js 安装及配置(hello world)及 node 的包管理器(npm)
下载地址:Download | Node.js,无脑下一步安装即可: 安装时,会自动将 node 可执行文件路径添加进 Path 内,这样进入 cmd 命令行,以查看 node 的安装版本: > ...
- npm --- Node.js包管理器
目录 1. 安装Node.js 2. 运行npm 3. npm介绍 3.1 安装插件 3.2 更新插件 3.3 卸载插件 3.4 查看当前目录中的插件列表 4. 使用cnpm 4.1 安装 npm( ...
- 使用yarn代替npm作为node.js的模块管理器
使用yarn代替npm作为node.js的模块管理器 转 https://www.jianshu.com/p/bfe96f89da0e Fast, reliable, and secure d ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- JS模块规范 前端模块管理器
一:JS模块规范(为了将js文件像java类一样被import和使用而定义为模块, 组织js文件,实现良好的文件层次结构.调用结构) A:CommonJS就是为JS的表现来制定规范,因为js没有模块的 ...
- NET Core 静态文件及JS包管理器(npm, Bower)的使用
NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScri ...
- [Web 前端] 使用yarn代替npm作为node.js的模块管理器
cp from : https://www.jianshu.com/p/bfe96f89da0e Fast, reliable, and secure dependency managemen ...
随机推荐
- 一些简单的JavaScript的方法
<script type="text/javascript"> //js跳转 function UserMouserDown() { confirm('你确定要删除吗? ...
- Exact Change(01背包)
描述 Seller: That will be fourteen dollars. Buyer: Here's a twenty. Seller: Sorry, I don't have any ch ...
- 64.JPA命名策略【从零开始学Spring Boot】
[从零开始学习Spirng Boot-常见异常汇总] 在(39.2). Spring Boot Shiro权限管理[从零开始学Spring Boot] 这一章节中有人碰到这样一个问题"导入的 ...
- apache kafka系列之server.properties配置文件参数说明
每个kafka broker中配置文件server.properties默认必须配置的属性如下: broker.id=0num.network.threads=2num.io.threads=8soc ...
- CSUOJ 1256 天朝的单行道
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1256 题目大意: 在另一个平行宇宙中,有一个神奇的国度名叫天朝.天朝一共有N个城 ...
- D 题
题目大意:找朋友,最好把朋友最多的一堆的人数输出 运用并查集,每次更新最大数即可: 代码: #include <iostream> #include <cstdio> #inc ...
- [NOIP2002] 提高组 洛谷P1034 矩形覆盖
题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这 ...
- Hihocoder #1067 : 最近公共祖先·二
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上上回说到,小Hi和小Ho用非常拙劣——或者说粗糙的手段山寨出了一个神奇的网站,这个网站可以计算出某两个人的所有共同祖先中 ...
- ES6__Symbol
/** * Symbol */ /** * 1 什么是 Symbol ? * Symbol,表示独一无二的值.它是 JS 中的第七种数据类型. */ // 基本的数据类型: Null Undefine ...
- POJ3177,/3352.求最少添加多少边使无向图边双连通
俩个题一样.tarjan算法应用,开始求桥,WA,同一个边双连通分量中low值未必都相同,不能用此来缩点.后来用并查集来判断,若不是桥,则在一个双连通分量中,并之,后边再查,将同一个双连通分量中的点通 ...