萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> ASP:頁面輸出太多會嚴重影響web程序的性能

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

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

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

  難道這個分頁程序有問題,但是其他地方用到它沒有感覺到慢呀,我沒事就琢磨他,到網上查資料,結果沒有具體查到說到我的那個分頁程序性能差的相關資料,後來我發現我的程序中的頁導航用的是數字導航方法,而且所有的頁導航的數字全都輸出來了,一共一千多頁,能不能使這個地方慢呢?我決定測試一下,所以,我就只讓他輸出前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>
copyright © 萬盛學電腦網 all rights reserved