在javascript的case语句中添加后端函数调用会导致显着的减速

时间:2016-09-27 15:07:06

标签: javascript asp.net vb.net

在JavaScript前端的case语句中添加代码隐藏函数调用会导致显着减慢,即使被解决的情况不是具有该函数的情况。

case 'A'

如果我发表评论'B'并测试'C'case 'A'应用程序工作非常快,那么我添加'B'的那一刻就会减慢整个过程,即使我和#39;我只测试'C'try { // code that can throw } catch (Exception e) { throw (e instanceof RuntimeException) ? (RuntimeException) e : new RuntimeException(e); }

1 个答案:

答案 0 :(得分:2)

首先,Javascript不允许单个case中的多个案例值。实际发生的是它将('B' || 'C')评估为表达式,等于'B'。所以case ('B' || 'C'):实际上只匹配'B'。要匹配'B''C',您必须使用两个case语句:

case 'B': case 'C':

它们可以如图所示位于一条线上,也可以位于不同的线上。由于它们之间没有breakcase 'B'将落入case 'C'。如果tab变量等于'B''C',则下面的代码将会运行,正如您可能想要的那样。

就缓慢而言,我希望<%=func1() %>是你的问题。您在ASP代码中调用辅助函数func1,以便将数据传递给Javascript。在最初加载页面之前,在Javascript代码甚至开始运行之前,ASP在服务器上运行;这就是为什么它会减慢代码的速度,无论case语句是否运行。

我建议检查该功能,以找出原因缓慢或重构代码,这样您就不需要使用该功能将该数据从ASP传递到页面;例如,如果案例实际运行,您可以使用AJAX从服务器下载它;那么它根本不应该减缓其他情况。