小编And*_*hak的帖子

在EXTJS折线图中创建自定义线

我需要在我的折线图上添加一条垂直线和一个文本,靠近图表上的指定点(由数据指定,而不是坐标).我尝试使用CompositeSprites,但它并没有完全显示在屏幕上.我是ExtJS绘图的新手.

javascript extjs

5
推荐指数
1
解决办法
2806
查看次数

为什么 Javascript Eval 较慢,但本不该如此

所以我试图创建我自己的 JS 框架只是为了我自己的乐趣(然后可能会转换成有用的),我大部分时间都专注于动态生成 JS(因为 JS 具有更高的水平作为中间语言是个坏主意,IMO)

我遇到了一个麻烦。我试图做以下

var f = null;
var converted = "f = function(){ <do something here>";
for(var x in list)
 converted+=list[x];
converted+="};";
eval(converted);
Run Code Online (Sandbox Code Playgroud)

所以这几乎将构造函数写入 f,我可以稍后执行。

但这里有一个问题 - 它运行得比我完全在文件中编写 f 的代码要慢,这很奇怪。让我解释一下为什么这对我来说很奇怪:当你每次只运行 eval 时,Chrome 预编译器(或任何浏览器预编译器 - chrome 是我的目标)无法缓存编译代码,因为它期望它会随着每个跑。

但是,当您将其保存到一个函数时,它会创建一个新的 VM 机器文件,因为在您保存该函数的代码后,您将无法更改它。那么为什么当我执行这样的 eval 时,它的运行速度比正常执行慢?我的意思是在代码执行不止一次之后。为什么这很重要?

PS:我上面展示的方法比每次 eval-ing 都快。所以我不明白为什么秒表在中间显示时间,再次忽略前 1-10 个电话

PPS:测试用例:http : //jsperf.com/evaluate-function-vs-real-function/2

javascript google-chrome eval

3
推荐指数
1
解决办法
1073
查看次数

标签 统计

javascript ×2

eval ×1

extjs ×1

google-chrome ×1