2015-01-16 6 views
-1

이 코드로 검색해야하는 데이터 양 때문에 페이지가 조금 느리게로드되는 문제가 있습니다. 더 빠르지 만 더 많은 코드 페이지를 가진 다른 코드를 작성했습니다. 속도를 높이기 위해 이것을 쓰는 다른 방법이 있습니까?페이지로드가 느립니다.

<!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> 
+0

더 나은 html, 덜 최적화 된 sql 쿼리 및 루프, 캐싱, ajax 및 약속, 인라인 CSS 제거. 기본적으로 모든 것; p –

+0

@LozCherone ツ 실제로 AJAX를 사용하면 속도 문제를 해결하는 것이 아니라 주변을 움직여 덜 눈에 띄게 만듭니다. –

+0

더 나은 호스팅/전용 서버 ... 양자 프로세서 .. 문자열 조각 ... –

답변

2

우선 : 인라인 CSS를 제거하십시오. 대형 데이터 세트를 사용하면 HTML 크기가 크게 증가하므로 전송 시간도 증가합니다. 대신 스타일 시트를 사용하십시오.

다음 : 특정 셀 안에 종종 strong 개의 요소를 사용하고 있습니다. 대신 CSS의 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 설치시 짧은 태그 열기 옵션이 활성화 된 경우).

관련 문제