【发布时间】:2014-09-17 21:29:41
【问题描述】:
我的问题是我有一个很长的字符串要解析(基本上是一个表示为字符串的对象),我试图在不使用 eval 的情况下手动解析它,我有超过 1000 行循环函数,我'甚至还没有接近完成算法。
我正在检查这是如何在 jQuery.metadata 中完成的,他们只是使用了 eval!我的 1000 行代码可以缩减为一个 eval,但这安全吗?我听说这个函数既不安全也不快,但考虑到所有这些循环和解析,我的算法也很慢。
例如
<button onajax="{reload:'#someitem',callback: function('somedata'),items:{1,2,3}}">
我需要设置
var onajaxargs = {reload:'#someitem',callback: function('somedata'),items:{1,2,3}};
【问题讨论】:
-
如果该对象表示为 JSON 字符串,您最好使用
JSON.parse()。 -
@Roman Hocke :它会解析诸如“{action : doSomething('some data')}”之类的字符串吗,对不起,我不太习惯 JSON
-
不,不会。所以你的字符串不是 JSON,很高兴知道。只是为了好奇:那个字符串是从哪里来的?
-
我正在尝试创建一个库作为 jQuery 的扩展,尽可能避免编写脚本,所以基本上一些属性为 onajax="{reload:'data',callback:myfunc('func ')}" 可以完成这项工作,这显然是一个对象,根据 jQuery.metadata 我应该使用 eval,但我还不确定。
标签: javascript performance eval