Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 包含许多列的HTML表的渲染时间过长_Php_Html - Fatal编程技术网

Php 包含许多列的HTML表的渲染时间过长

Php 包含许多列的HTML表的渲染时间过长,php,html,Php,Html,我正试图制作一张假期的“地图”,为此,我需要每个月在标题中的每一天以及在左边列中的每一位员工的姓名,直到我没有问题为止,问题是浏览器加载时间太长,加载后它会用哈希标签中断我的导航(无法加载“内容”中的另一个视图)第节) 构建标题: $year_start = new DateTime('1-1-2016'); $year_end = new DateTime('1-5-2017'); $period = new DatePeriod($year_start, new DateInterval('

我正试图制作一张假期的“地图”,为此,我需要每个月在标题中的每一天以及在左边列中的每一位员工的姓名,直到我没有问题为止,问题是浏览器加载时间太长,加载后它会用哈希标签中断我的导航(无法加载“内容”中的另一个视图)第节)

构建标题:

$year_start = new DateTime('1-1-2016');
$year_end = new DateTime('1-5-2017');
$period = new DatePeriod($year_start, new DateInterval('P1D'), $year_end);
$period_m = new DatePeriod($year_start, new DateInterval('P1M'), $year_end);

<thead>
    <?php
    echo '<tr>';
    echo '<th colspan="2"></th>';
    foreach ($period_m as $month){  
        echo '<th style="text-align:center;" colspan="'.cal_days_in_month(CAL_GREGORIAN, $month->format('m'), $month->format('Y')).'">'.$month->format('F').'</th>';
    }
    echo "</tr>";
    echo "<tr>";
    ?>
    <th> Name</th>
    <th> Department</th>
    <?php
    foreach($period as $day){
        echo "<th>" . $day->format('j')."</th>";
    }
    echo "</tr>";
    ?>
</thead>`
$year\u start=新日期时间('1-1-2016');
$year_end=新日期时间('1-5-2017');
$period=new DatePeriod($year\u start,new DateInterval('P1D'),$year\u end);
$period\u m=新日期期间($year\u start,新日期间隔($P1M'),$year\u end);
名称
部门
`
锻炼身体(这是需要很长时间的)


通过Firefox开发者,我尝试分析速度,最慢的是:

重铸样式持续时间=5905,15 ms

布局持续时间=3289,58毫秒


此页面中没有javascript。

您是否尝试过调整显示的行数?我只有150行,其中一个要求是不能分页,但限制为50行肯定会提高速度。您可以尝试向客户端解释,如果他们想要提高速度,那么他们必须分页。
<tbody >
        <tr>
            <td><?=$user['name']?></td>
            <td><?=$user['department']?></td>
        <?php
        foreach($period as $day){
            if ($day->format('N') === '7' || $day->format('N') === '6') {
                echo '<td class="weekend"></td>'; 
            }else if(in_array($day->format('Y-n-j'), $holidayDays) || in_array($day->format('*-n-j'), $holidayDays)){
                echo '<td class="holiday"></td>'; 
            }else{
                if(isset($user['dates']) && in_array($day->format('Y-n-j'),$user['dates'])){
                    echo '<td class="user-holiday"> 1 </td>'; 
                }else{
                    echo '<td></td>';   
                }
            }
        }
        ?>
        </tr>
    <?php       
    }
    ?>
    </tbody>