程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP:頁面輸出太多會嚴重影響web程序的性能

ASP:頁面輸出太多會嚴重影響web程序的性能

編輯:關於ASP編程

      數據量增加的很快,最近發現它的性能非常差,每次打開都需要十幾秒,甚至幾十秒,因為我

      的程序分頁用的是我自己的分頁程序:

      難道這個分頁程序有問題,但是其他地方用到它沒有感覺到慢呀,我沒事就琢磨他,到網上查資料,結果沒有具體查到說到我的那個分頁程序性能差的相關資料,後來我發現我的程序中的頁導航用的是數字導航方法,而且所有的頁導航的數字全都輸出來了,一共一千多頁,能不能使這個地方慢呢?我決定測試一下,所以,我就只讓他輸出前200頁的導航鏈接,結果1秒鐘就刷出來了。這我才恍然大悟,原來是輸出內容太多導致的。以前遇到性能問題都會去想數據庫操作,從來沒有想到其他地方會不會有問題,或很少想其他地方。其實頁面輸出的數據量對性能也是有很大影響的,所以我們一定要養成良好的程序書寫習慣,力求簡單。

      後來我對程序進行了優化,優化分兩個步驟,第一個步驟我不將所有的導航都輸出來,只輸出前200多頁,後面再加一個文本框用於導航。

      同時我對每個鏈接進行了簡化,原來每個上面都有很長的鏈接,至此我將鏈接放到了javascript函數中,然後再導航數字上只加上一個onclick事件。這樣又可以減少很多輸出數據。結果性能非常好。

      原來的代碼片斷:

     <font color="#008080" size="2">當前<font color=ff0000>
    <%=tCurPage%></font>頁 共<font color=ff0000>
    <%=tpagecount%></font>頁   
      <br><%     if tTotalCount>0 then                      
       for i=1 to tPagecount                                                               
       %><a href='<%=request.servervariables("Path_Info")%>
    ?page=<%=i%>&browserSize=<%=browserSize%>
    &t_count=<%=tTotalCount%>&order_field=<%=tOrderField%>
    &order_dir=<%=tOrderDirection%>&oType=<%=oType%>
    &oOP=<%=oOP%>&oKey=<%=FilterParam4(oKey)%>
    &page_size=<%=tPageSize%><%=add_Option%>'><%=i%></a>
    <% if browserSize=1 then      
             if i=20 or i=36 then response.write " "       
          end if    
          if i=fCou then   
             exit for     
          end if      
          response.write ""           
       next %>
      <%dim allStr             
       if tpagecount>fCou then                                       
          for i=fCou+1 to tpagecount          
         if browserSize=0 then      
           m=(i=74 or i=107 or (i>107 and ((i-107) mod 27)=0))      
         else      
           m=(i=94 or i=130 or (i>130 and ((i-130) mod 35)=0))  
         end if                
                                                                                               
           allStr=allStr & "<a href='"&request.servervariables("Path_Info")&"?
    page="&i&"&browserSize="&browserSize&"&t_count=" & tTotalCount & 
    "&order_field=" & tOrderField & "&order_dir=" & tOrderDirection & "&
    oType=" & oType & "&oOP=" & oOP & "&oKey=" & FilterParam4
    (oKey) & "&page_size=" & tPageSize & add_Option & 
    "'>"       
           allStr=allStr & i     
           allStr=allStr & "</a>"          
           if not m then allStr=allStr & " "       
           if m then allStr=allStr & "<br>"           
           if browserSize=1  then                
               if i=58 or i=71 then allStr=allStr & " "                
           end if                 
          if i=106 then allStr=allStr & " "       
          next%>                                         
          <script language=javascript>            
             var allStr;                       
             allStr="<%=allStr%>";                                                  
          </script><a href="#" title="顯示更多…" id=seemore 
    >
    <font color=ff0000>∨</font></a><span id=morePage></span> 
    <%end if %>                                                              
    <% end if  %>  </font>      

                                                                                                      
                   
    更改後的代碼片斷:

     < script language="javascript">
       function mP(curPage)
       {
         try{
          if(!curPage)return false;

          var patInt=/^d+$/;
          if(!patInt.test(curPage)) return false;

          if(parseInt(curPage)<=0) return false;
          self.location='<%=request.servervariables("Path_Info")%>?
    page=' + curPage+ '&browserSize=<%=browserSize%>
    &t_count=<%=tTotalCount%>&order_field=<%=tOrderField%>
    &order_dir=<%=tOrderDirection%>&oType=<%=oType%>
    &oOP=<%=oOP%>&oKey=<%=FilterParam4(oKey)%>
    &page_size=<%=tPageSize%><%=add_Option%>';
          }
          catch(e) {
            window.status=e.description
            return false;
          }
       }   
    < /script>                                                                                  
       <font color="#008080" size="2">當前<font color=ff0000>
    <%=tCurPage%></font>頁 共<font color=ff0000>
    <%=tpagecount%></font>頁      
    <br><%  if tTotalCount>0 then
        for i=1 to tPagecount     
         %><span ><%=i%></span>
         <% if browserSize=1 then   
               if i=20 or i=36 then response.write " "      
            end if  
            if i=fCou then                 
               exit for                
            end if  
    response.write ""    
        next 
        dim allStr  
                                                            
        if tpagecount>fCou then  
           showPageCount=tpagecount
           if showPageCount>260 then showPageCount=260                   
           for i=fCou+1 to showPageCount     
                        
        if browserSize=0 then                   
           m=(i=74 or i=107 or (i>107 and ((i-107) mod 27)=0))                
        else                
           m=(i=94 or i=130 or (i>130 and ((i-130) mod 35)=0))                
        end if                                                                             
           allStr=allStr & "<span >GO</span>"%><a href="#" title="顯示更多…"
    id=seemore ><font color=ff0000>∨</font></a>     
      <span id=morePage style="display:none"><%=allStr%></span>                                                     
     <%end if                                                                                      
    end if                                                                                            
       %>  </font>  
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved