簡體   English   中英

頁面加載緩慢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM