[英]page is slow to load
我遇到了一个问题,该页面由于使用此代码必须检索的数据量而加载速度有点慢。 我编写了其他代码,速度更快,但是与该代码相比,有更多的代码页。 还有其他方法可以编写此代码以提高速度。
<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
<link href="../css/custom.css" rel="stylesheet">
</head>
<body>
<nav>
<table border='1'>
<?php
/* For the 2 different types of tables */
$dataArray = array("one"=>"status='Received'","two"=>"Department='Claims'","three"=>"Department='flat 1'","four"=>"Department='flat 2'","Five"=>"Department='Inbound'");
require_once("../db_connect.php");
foreach ($dataArray as $i=>$v)
{
?>
<tr><td>
<a href="#" data-id="<?php echo $i; ?>">
<?php
$stmt = $db->prepare ("SELECT COUNT(*) AS rows_cnt FROM receivingrequests WHERE ".$v);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['rows_cnt'];
}
?>
</a>
</td>
<td>
<?php echo$v;?></td>
</tr>
<?php
}
?>
</table>
</nav>
<?php
foreach ($dataArray as $i=>$v)
{
?>
<div id="<?php echo $i; ?>" class="toggle_content">
<?php
//prepared statement with PDO to query the database
$stmt = $db->prepare("SELECT * FROM receivingrequests WHERE ".$v);
$stmt->execute();
?>
<?php //start of the while loop ?>
<?php while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) { ?>
<table border="1" style="border: thin #000000; table-layout: fixed; width: 100%; background-color: #FFFFFF; display: table;" class="style1">
<tr>
<th style="width:15%; background-color: #000000;color: #FFFFFF;" class="style3">
<strong>Request#</strong></th>
<th style="width:15%; background-color: #000000;color: #FFFFFF;" class="style3">
<strong>Status</strong></th>
<th style="width:20%; background-color: #000000; color: #FFFFFF;" class="style3">
<strong>Comments</strong></th>
<th style="width:10%; background-color: #000000; color: #FFFFFF;" class="style3">
<strong>Date Requested</strong></th>
<th style="width:20%; background-color: #000000; color: #FFFFFF;" class="style3">
<strong>Name</strong></th>
<th style="width:10%; background-color: #000000; color: #FFFFFF;" class="style3">
<strong>Department</strong></th>
<th style="width:10%; background-color: #000000; color: #FFFFFF;" class="style3">
<strong>VasLblDate</strong></th>
</tr>
<tr>
<?php $id = $row['RequestNumber'];?>
<?php echo "<td> <a href='../update.php?id=$id'>$id</a></td>"?>
<td class="style2" style="width: 62px"><strong><?php echo $row['Status']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Comments']; ?></strong></td>
<td class="style2"><strong><?php echo $row['DATEREQUESTED']; ?></strong></td>
<td class="style2"><strong><?php echo $row['EmpName']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Department']; ?></strong></td>
<td class="style2"><strong><?php echo $row['VasLbDate']; ?></strong></td>
</tr>
<tr>
<th style="background-color: #F4F4F4; width: 62px;"class="style3"><strong>Work Requested</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong># Of Cases Missing</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong># Of Stray Cases Found/To Move</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong># Of Cases To Consume</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>PO #</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>IS #
</strong> </th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Vendor Name
</strong> </th>
</tr>
<tr>
<td class="style2" style="width: 62px"><strong><?php echo $row['Effortrequest']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Missing']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Located']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Dissassociated']; ?>
</strong></td>
<td class="style2"><strong><?php echo $row['PONumber']; ?></strong></td>
<td class="style2"><strong><?php echo $row['IBS']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Vendor']; ?></strong></td>
</tr>
<tr>
<th style="background-color: #F4F4F4; width: 62px;"class="style3"><strong>Case 1</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Case 2</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Case 3</strong></th>
<th style="background-color: #F4F4F4;"class="style2"></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Description</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Comments</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Carrier</strong></th>
</tr>
<tr>
<td class="style2" style="width: 62px"><strong><?php echo $row['CaseOne']; ?></strong></td>
<td class="style2"><strong><?php echo $row['CaseTwo']; ?></strong></td>
<td class="style2"><strong><?php echo $row['CaseThree']; ?></strong></td>
<td class="style2"><strong><?php echo $row['']; ?></strong></td>
<td class="style2"><strong><?php echo $row['ReqDescription']; ?></strong></td>
<td class="style2"><strong><?php echo $row['MoreComments']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Carrier']; ?></strong></td>
</tr>
<tr>
<th style="background-color: #F4F4F4; width: 62px;"class="style3"><strong>Trip</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>DC Remarks Update by</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>DC Remarks Updated</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong># Of Actual Cases Consumes</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>EE Performing Consume Cases</strong></th>
<th style="background-color: #F4F4F4;"class="style3" class="style2">
<strong>Store Number</strong></th>
<th style="background-color: #F4F4F4; width:60px; height: 25px;" class="style3">
<strong>Reason</strong></th>
</tr>
<tr>
<td class="style2" style="width: 62px"><strong><?php echo $row['Trip']; ?></strong></td>
<td class="style2"><strong><?php echo $row['RemarksBy']; ?></strong></td>
<td class="style2"><strong><?php echo $row['CompDT']; ?></strong></td>
<td class="style2"><strong><?php echo $row['CaseCount']; ?></strong></td>
<td class="style2"><strong><?php echo $row['WHODIS']; ?></strong></td>
<td class="style2"><strong><?php echo $row['StoreNumber']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Reason']; ?></strong></td>
</tr>
<br>
<tr>
<th style="background-color: #F4F4F4; width: 62px;"class="style3"><strong>New IS#</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>New Carrier Shipment#</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Deleted Case#</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Notes</strong></th>
<th style="background-color: #F4F4F4;"class="style3"><strong>Inbound User ID</strong></th>
<th style="background-color: #F4F4F4;"class="style3" class="style2">
<strong>Was Shipment</strong></th>
<th style="background-color: #F4F4F4; width:60px; height: 25px;" class="style3">
<strong>Verified BY</strong></th>
</tr>
<tr>
<td class="style2" style="width: 62px"><strong><?php echo $row['NewIS']; ?></strong></td>
<td class="style2"><strong><?php echo $row['NewCSN']; ?></strong></td>
<td class="style2"><strong><?php echo $row['DCN']; ?></strong></td>
<td class="style2"><strong><?php echo $row['MoreComments']; ?></strong></td>
<td class="style2"><strong><?php echo $row['AreaID']; ?></strong></td>
<td class="style2"><strong><?php echo $row['Verified']; ?></strong></td>
<td class="style2"><strong><?php echo $row['VerifiedID']; ?></strong></td>
</tr>
</table>
<?php } //end of the while loop?>
</div>
<?php
}
?>
<!-- Placed at the end of the document so the pages load faster -->
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<script>
$( document ).ready(function() {
$('a').on('click', function() {
var div_id = $(this).data('id');
$('.toggle_content').hide();
$('#' + div_id).toggle();
});
});
</script>
</body>
</html>
首先:摆脱内联CSS。 对于大型数据集,这将极大地增加HTML的大小,这意味着传输时间也将增加。 请改用样式表。
然后:您经常在某些单元格内使用strong
元素。 尝试使用CSS的font-weight: bold;
做一些聪明的事情font-weight: bold;
代替。 这也将减少HTML的大小。
最后:检查您的服务器是否已打开压缩功能,以减少数据流量。
然后是一些最佳实践的东西:
这是次要的,但是您并未充分使用PDO的预准备语句。 您可以在循环中执行以下操作:
$stmt = $db->prepare ("SELECT COUNT(*) AS rows_cnt FROM receivingrequests WHERE ".$v);
相反,请在循环外准备语句,然后在循环中执行该语句:
$stmt = $db->prepare ("SELECT COUNT(*) AS rows_cnt FROM receivingrequests WHERE ?");
// start loop... {
$stmt->execute(array($v));
// } ... end loop
这样,您无需再次准备。
但是,使用这种小型阵列不会造成麻烦。
最后一句话: <?php echo $i; ?>
可以将<?=$i?>
<?php echo $i; ?>
快捷方式设置为<?=$i?>
(如果您的PHP安装启用了短标签标记选项)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.