[英]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.