我正在建立一个网站。单击按钮,将调用名为HeavyTask的JS函数。它对Action方法进行了ajax调用,该方法将在服务器上执行CPU Heavy任务。按钮看起来像这样
<input type="Submit" value="Start" onclick="HeavyTask()" />
但是我担心有人可能会按F12,右击任何元素 - &gt;编辑为HTML并像这样注入脚本
setInterval(HeavyTask, 100);
导致服务器CPU浪费其所有处理能力并导致网站滞后。我尝试用chrome做到这一点。我能够更改HTML元素,但无法运行此脚本。但是可能会有一些浏览器/其他技术允许。我应该担心还是不担心。如果是,我该如何解决这个问题,以便用户无法再次调用该函数,直到第一次调用返回为止。我的后端技术是ASP.NET。感谢
答案 0 :(得分:0)
您无法在客户端上执行任何无法覆盖的操作,但您可以通过设置和检查服务器端变量来停止在服务器上多次执行该进程...
public void PerformHeavyTask()
{
if (Session["HeavyTaskRunning"] == null)
{
Session["HeavyTaskRunning"] = true;
// perform heavy task
Session.Remove("HeavyTaskRunning");
}
}
这将允许多个客户端请求相同的繁重任务,但这可能并不理想。
(我假设服务器上有C#)