判断js里面function的使用情况

作者:yinwm
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。

今天,我开出了一个新的分类——“技术快餐”
。它的目的,就是在短时间内,使用一些技巧或者什么手法,来解决身边的一些“小”问题。既然是快餐,那么他就可能投机取巧,并且很有可能他就不是一个非常
完美的解决方案。但是毕竟快嘛,用起来简单,方便,能够大体上得到一个(大致)精确的结果,我就满意了。

今天说一下如何判断js里面function的使用情况。

问题描述:我现在要调查一下线上服务的loadtime情况,其中能够奏效的很明显的一点就是较少js的体积。这里并不是讲究如何去压缩等等。而是一个简单的调查。
现在已经存在了大量的js
lib,相信一些web的developer手上也有一些自己封装好的lib。用的时候,一个include,很是方便。但是当你在两大的lib里面,东
拼西凑的完成你的功能的时候,其实也有一部分存在的代码,从来也没有执行过一次。这个时候,找到并处理他们是一个很有意义的事情。

思路:在每一个function里面,加入一个log,这样,当这个function被调用的时候,我就知道了,当覆盖了全部(或者大部分)的feature以后,js function的使用率自然一目了然。
log,不用什么高深的log4js等等,就是简单的apache access log就可以了。
在页面中动态的生成一个image对象,然后当需要记录log的时候,只要把image对象的src设置成为一个标记就可以。这样在apache的access_log当中就会有记录了。

实施:使用sed命令来给每一个需要统计的js做一下处理。
比如,你有一个方法叫做
function a () {

}
处理以后,变成
function a() {
ltimg.src=”xxx” mce_src=”xxx”;

}
这样就达到了记录的目的了。
下面附上代码:
jsfuncname.sh
sed -e ’s/function \(.*\)\(.*\){/function \1 \2 {
ltimg.src=”\/images\/ltimg.jpg?n=\1″
mce_src=”\/images\/ltimg.jpg?n=\1″;/g’ $1 | sed -e
’s/\(.*\)=\(.*\)function\(.*\){/\1=\2function\3{
ltimg.src=”\/images\/ltimg.jpg?n=\1″
mce_src=”\/images\/ltimg.jpg?n=\1″;/g’ | sed -e ‘1i\
if (typeof(ltimg) == “undefined”) ltimg=new Image();

使用方法,吧这段sh帖成一个sh文件,然后执行
sh jsfuncname.sh filename.js > newfile.js
这样newfile就是新的生成好的文件了。

下面是我测试用的一段code,
var a = function () {
aaa;
}

function a() {
}

function a () {
}

function a (a,b,) {
}

function a() { //tt
}

function a () { bb;
}

function a() { bb;}

(function a() {bb;})

var f= (function() { bb;})

if (typeof (a) == “function”) {
}

if (typeof (a) == “function”)
{}

if (typeof (a) == “function”) {}
if (typeof (a) == “function” && typeof (a) == “undefined”) {bb;}
if (typeof (a) == “undefined” && typeof (a) == “function”) {bb;}

至少,在我使用的环境下,他的表现还是完美的。

Jan 15th, 2007 | Posted in javascript, 技术快餐
Tags:
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WP Hashcash