I have a little bit of code that looks just like this:
function StrippedExample(i1, i2, i3, i4, i5, i6, i7, i8) {
this.i = [];
for (var i=1,j=0 ;i<9;i++) {
var k = eval("i"+i);
if (k > 0) {
this.i[j++] = k;
}
}
}
FireBug分析器指出,第二长的函数是eval(),运行时长最高可达近6%。
大家都说eval很“邪恶”(意为不好的),也很慢(正如我所发现的),但我真的无法做其他事情——服务器只是从数据库中提取数据并推送到浏览器。
我有什么替代方案吗?我可以在服务器上执行与此处相同的操作,但这只是将负担转移到了更高层次。我不能更改数据库布局,因为所有东西都连接到这8个变量,并且是一项巨大的工程。