PHP填充的众多选择下拉菜单 - 慢页面加载

时间:2013-10-11 10:49:51

标签: php performance drop-down-menu

我有许多<select>个下拉列表,每个下拉列表通过简单的数字循环填充(此时不涉及数据库)。

见图:

每个都包含08:00至24:00(0:00)的时间。

我使用了我创建循环的常用方法来回显选项,但是,由于它们的数量,页面经历了相当糟糕的减速。

我想知道是否有更好的方法来解决这个问题?

这是我的PHP函数来回应选项:

function printHours($interval = 30, $selected = "07:00", $start = "0") {
    $selected = date("G:i", strtotime($selected));
    for($i=$start; $i < 24; $i++) {
        for($j = 0; $j < 59; $j+=$interval) {
            $time = str_replace(":0", ":00", "$i:$j");
            echo '<option value="' . $time . '"';
            if($selected == $time) {
                echo ' selected="selected"';
            }
            echo '>' . $time . '</option>';
        }
    }
    echo '<option value="0:00">0:00</option>';
}

2 个答案:

答案 0 :(得分:0)

如果将这些字符串保存在变量而不是回显中,则只需要为所有这些下拉列表循环一次。

答案 1 :(得分:0)

这样的事情:

printHours(30, '12:00', '08:00');

function printHours($interval = 30, $selected = '', $start = '00:00', $end = '24:00') {
    $period = new \DatePeriod(
        new \DateTime($start),
        \DateInterval::createFromDateString('30 minutes'),
        new \DateTime($end));

    foreach($period as $interval) {
        $time = $interval->format( "H:i" );
        echo '<option value="', $time, '"', $time === $selected ? ' selected' : '', '>', $time, '</option>';
    }
}