【发布时间】:2013-01-12 21:56:55
【问题描述】:
情况是:
用户编写了一些 js 代码,它应该在一些数据上运行(本地)。
但有时会有无限循环或递归调用......这就是为什么我需要限制函数的执行时间而不是编辑函数本身(即使是这样 - 我应该在每个序列点之后插入检查吗?但是呢?递归调用?)
对于这个奇怪的问题还有其他解决方案吗?也许 eval 可以给出一些代码的解析树或类似的东西?
【问题讨论】:
-
您是否更愿意尝试中止执行而不是简单地避免无限循环/递归?
-
当你说它在本地的一些数据上运行时,你的意思是在用户的机器上,还是在你控制的某个服务器上本地。如果是后者,这是否在类似 Node.js 的环境中运行?
-
原因是脚本执行的是用户的代码,而不是我的
-
«当您说它在本地的某些数据上运行时,您是指在用户的机器上运行,还是在您控制的某个服务器上本地运行。如果是后者,它是否在类似 Node.js 的环境中运行?»我的意思是在用户的机器上,但在浏览器中并使用 js
-
好吧,如果用户写了一些js,因为它无休止地循环,导致用户机器变慢,这不是最好的结果吗? IE。它将帮助用户意识到他们需要修复他们的代码。
标签: javascript eval execution abort time-limiting