0

我正在一个网站上工作,该网站存储不同车辆的维护事件。但我需要按部分对它们进行分类,但我无法弄清楚如何构建页面。他们需要选择一个零件,然后是一个位置,有时甚至更进一步。我曾想过使用 Javascript 来生成额外的下拉框,但是必须制作一堆 if,then 语句似乎效率很低。有没有更有效的方法来做到这一点?

编辑:我的伪代码就像

onChange=>changeFunction()


changeFunction{
if(ddlLocation=brakes){
add select boxes, populate with the individual parts
}else if (...){
}
}
4

2 回答 2

0

在大多数情况下——但取决于应用程序——最好使用 switch 语句而不是链式 if 语句。Switch 语句通常也比多个 if 条件更快。

在 JavaScript 中,当只需要评估一两个条件时,if 语句通常比 switch 语句更快。当有两个以上的条件并且条件很简单(不是范围)时,switch 语句往往更快。这是因为在 switch 语句中执行单个条件所花费的时间通常少于在 if 语句中执行单个条件所花费的时间,这使得 switch 语句仅在条件数量较多时才是最优的。

有关 if else 与 switch 的更多信息

Javascript case 语句示例:

switch(n)
{
 case 1:
   execute code block 1
   break;
 case 2:
   execute code block 2
   break;
 default:
   code to be executed if n is different from case 1 and 2
 }
于 2013-02-06T05:46:48.167 回答
0

我必须更多地了解特定应用程序才能更好地提供帮助,但这是一种更好的方法。

动态思考,你有一百个输入,带有唯一的名称,创建具有模式中方法名称的方法的类,这样你就可以循环输入名称并根据方法命名约定检查可用的方法并将其调用专门处理该类型的输入。

在这种情况下,如果您设置正确,您可以一次将所有输入传递给一个处理随机输入的循环,并且它可以在没有 if,else 的情况下处理。

例如:

$carparts = new CarParts();
foreach ($_POST as $name=>$value) {
    $method = strtolower($name) . 'Action';
    if (method_exists($carparts,$method)) {
        $carparts->$method($value);
    }
}
于 2013-02-06T05:22:06.853 回答