我在一个网站上工作,该网站存储不同车辆的维护事件。但我需要按部分对它们进行分类,但我很难弄清楚如何构建页面。他们需要选择一个零件,然后选择一个位置,有时甚至更进一步。我曾想过使用Javascript来生成额外的下拉框,但必须生成一堆if,then语句似乎效率很低。有没有更有效的方法可以做到这一点?
编辑:我的伪代码就像
onChange=>changeFunction()
changeFunction{
if(ddlLocation=brakes){
add select boxes, populate with the individual parts
}else if (...){
}
}
我必须更多地了解特定的应用程序才能更好地提供帮助,但这里有一个更好的方法。
动态思考,您有一百个具有唯一名称的输入,使用具有模式中方法名称的方法创建类,这样您就可以循环使用输入名称,并根据方法命名约定检查可用方法,并调用它来专门处理该类型的输入。
在这种情况下,如果设置正确,就可以一次将输入传递给一个循环,该循环可以很好地处理随机输入,而不需要if,else。
例如:
$carparts = new CarParts();
foreach ($_POST as $name=>$value) {
$method = strtolower($name) . 'Action';
if (method_exists($carparts,$method)) {
$carparts->$method($value);
}
}
在大多数情况下——但取决于应用程序——最好使用switch语句,而不是链式if语句。Switch语句通常也比多个if条件更快。
在JavaScript中,当只有一个或两个条件需要评估时,if语句通常比switch语句更快。当有两个以上的条件,并且条件很简单(而不是范围)时,switch语句往往会更快。这是因为执行switch语句中的单个条件所需的时间通常小于执行if语句中的一个条件所需时间,因此只有当条件数量较多时,switch语句才是最佳的。
更多关于if else vs switch 的信息
Javascript案例陈述示例:
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
}