當你的web站點采用asp技術建立的初期,可能感覺到的是asp動態網頁技術帶來的便利性,以及隨意修改性、 自如的http控制。但是,隨著訪問量的增加,你一定會發現自己的站點訪問速度 " /> 99久久精品免费,亚洲欧美日产综合在线看,一级视频在线播放

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Asp優化,asp緩存技術

  一、何謂ASP緩存/為什么要緩存
  當你的web站點采用ASP技術建立的初期,可能感覺到的是ASP動態網頁技術帶來的便利性,以及隨意修改性、 自如的http控制。但是,隨著訪問量的增加,你一定會發現自己的站點訪問速度越來越慢,IIS重新啟動得越來越頻繁。接下來,你一定想優化ASP,諸如更換性能更優異的數據庫、建立索引、編寫存儲過程等等。這些措施有些不需要增加成本壓力,有些則成本壓力很大(譬如叢access到SQL),而且效果還不一定。
  面對web訪問壓力,我認為最經濟的辦法是利用緩存優化技術來實現緩解web的服務壓力。
  Web訪問量增加通常意味著以下資源需 求的快速增長:

  1.  網卡流量增加,需要消耗更多的CPU處理網絡流量和網絡I/O線程。
  2.  需要更頻繁的打開/關閉數據庫連結(如果使用數據庫技術—通常ASP都會采用數據庫作為數據存儲),嚴重消耗資源的事物數量、以及事務相互競爭資源引起的 死鎖、會增加網絡I/O或者CPU消耗。
  3.  如果采用session的話,IIS為了維持狀態,會消耗更多內存,而內存消耗可能會引發物理內存不夠,引起物理內存同輔存間的頻繁交換,從而引起代碼執 行的停頓,web響應阻滯。
  4.  由于訪問的不到及時響應,會引起網頁訪問故障,導致用戶刷新,從而加劇CPU、內存等資源需求。

      實際 上,考慮通常的web應用程序,很多時候的動態代碼執行是不必要的。


      二、ASP緩存的分類
      擅自總結,ASP的緩存可以分為兩類:
      1、 文件緩存
      所謂文件緩存,就是根據邏輯判斷,一段時間內某個ASP的特定執行將不會有很大的變動,因而將內容以靜態 html的形式存放,然后以web的重定向技術讓客戶端訪問靜態文件,以達到減少CPU、數據庫資源等的需求。這樣的應用很多,譬如很多論壇就是在回復貼 子的時候將整個貼子重新生成一個靜態文件,然后進行重定向的,例如 donews.com的論壇。該成靜態還有一個副作用(好處)–可以很容易被google等搜索引擎收錄。一些所謂新聞發布系統的都采用了此技術。
      2、 文件片斷緩存
      所謂文件緩存,也是基于邏輯判斷,某部分數據(通常是需要消耗資源的大容量數據庫查詢取得)在一定時間內不會改變,所以我們可以將 這些數據利用文件的形式進行存儲,當需要時候,可以通過讀取文件來獲取數據,避免增加數據庫的負擔。例如,我們通常將一些數據以xml格式存儲,然后利用 xslt技術實現顯示(xml處理通常需要大量CPU資源,所以通常是IE直接讀取xml到客戶端在客戶的CPU上進行處理)。CSDN的論壇就是這樣處 理的。
      3、 主存緩存
      除此之外,還可以考慮在內存中處理緩存,將需要及時響應的內容存儲在內存中,一旦訪問需求,立即從快速的貯存中輸送 出去。如果極大量的訪問需求集中在幾個少量的頁面或者主存足夠多,我想采用主存緩存一定可以大幅度提高web訪問性能。

     

      三、如何 實現/使用緩存
      實現緩存需要考慮以下問題:
      1、 哪些頁面會在短時間內不會改變?
      分析自己的站點,這樣的頁面很多。譬如一個站點 通常都有新聞資訊類的欄目,這些欄目通常都是站點維護人員在一天的某個時間發布資料,之后很少改動頁面。那么這些頁面就適合于采用靜態文件緩存。實際上, 所謂新聞發布系統就是這么做的,那么那也可以參考這些系統的思想改造自己的原有動態ASP頁面。

      2、 那些頁面針對全部訪問者都采用同一個邏輯生成(也就是不區分訪問者)。
      除了新聞資訊之類的欄目所有訪問者都看一個界面外,論壇等消耗資源的應用一 般也可以設計成統一邏輯生成(同一個貼子,張三李四看的都一樣),針對這類應用頁面我們也可以采用靜態緩存來實現。也可以考慮將數據片斷化,利用腳本技術 在服務器處理能力之外也就是客戶端瀏覽器進行處理。

      3、 采用緩存的代價和收獲。
      主要就是“空間換(響應)時間”。利用 緩存技術將之后頻繁需要的內容進行預處理,使之提高web服務器響應能力,更重要贏得訪問者的歡心。代價就是web空間需求增加,同時又可能影響 到訪問效果。但我認為適當的緩存,是利大于弊的。

      4、 那些地方不適宜采用緩存
      動態查詢頁面,每個人的查詢內容 不一樣,所以顯示結果不大一樣,所以不大可能將查詢結果生成緩存,所以采用緩存較為復雜且緩存利用率底下,造成管理成本上什(假設你緩存了1000個查詢 關鍵字,那么管理這些關鍵字同緩存的對應也是麻煩事)。

     

      四、實例分析
      假設一個建議論壇的原有布局如下:
      根目錄下:

    • default.ASP 首頁,一般是精華、推薦之類
    • listBorad.ASP 該文件列出全部分欄目的名稱和介紹,如果攜帶參數MainBID就表示要列出板塊下的欄目
    • listThread.ASP 該文件如果不攜帶任何參數表示列出全部的貼子,攜帶MainBID表示列出某塊的全部貼子。如果攜帶subBID表示列出具體欄目的貼子。如果攜帶 page參數表示分頁列出主題。
    • ViewThread.ASP 列出某個貼子內容。我們假設貼子顯示為一個發言,任意跟貼全部列在后面。ID參數為要顯示的貼子。
    • Reply.ASP 回應某個貼子,攜帶參數Id回應某個貼子

      其它的暫不討論。
      以上,我們可以看到,如果全部是采用原始的ASP/php來做,那幾乎每一個 ASP文件的執行都需要數據庫操作,頻繁的查詢,多表查詢。要知道查詢數據庫最終會帶來性能的下降,響應速度下降,帶給訪問者緩慢的瀏覽影響,不利于 web的質量。更重要的是對于甲乙兩個人來將,他們訪問ViewThread.ASP之類的如果ID一致,那么很多時候他們會看到同樣的內容(他們的瀏覽 器收到的HTML代碼幾乎一樣),但是為了這“同樣的內容”,服務器需要打開數據庫連結、查詢,讀取紀錄,顯示,關閉紀錄、數據庫連結。。。。以下列的消 耗服務器資源的操作,如果是更多的人來訪問,最終的結果是這些人加劇消耗服務器資源。實際上,這些為了“同樣的內容”所做的重復勞動是可以利用緩存技術進行優化避免的。

      譬如,在reply.ASP提交內容后,我們立即調用生成靜態的功能,將整個貼子內容存儲為 viewThread_xxxx.htm之類的靜態html文件,再通常情況下訪問viewThread.ASP?ID=xxxx的時候,系統自動 redirect到對應的靜態文件viewThreadxxxx.htm去。這樣,當一個貼子沒有最新發布時候,他始終是靜態內容提供給瀏覽者;一旦有了 新的提交,將會更新到靜態文件中去,這樣,將會節省很多次數據庫操作,大大提高響應速度。
      listBorad.ASP也可以實施靜態化。我們可以 分析其可能攜帶的參數,將緩存文件名設定為listBoard_xx.htm,在增加新的欄目時候進行更新listBoard_xxx.htm。 listThread.ASP也類似,只不過由于其參數更多,所以緩存文件也會很多。擊若要緩存listThread.ASP? subBID=xxx&page=2,那么對應的靜態文件是listThread_xxx_p2.htm。default.ASP也一樣。
      那么如何判斷什么時候更新?在什么時機更新?
      討論listThread.ASP? subBID=xxx&page=2,我們在執行listThread.ASP俄時候提取subID和page,然后探測 listThread_xxx_p2.htm是否存在,如果不存在就調用靜態生成功能進行生成該文件,最終重定向到此靜態文件。注意,此處的不存在就意味 著出現了新的內容需要我們進行更新。
      那如何造成文件不存在呢?

      刪除。我們在發表一個新的貼子、刪除貼子、移動貼子的時候我們可以將類似 listThread_xxx_p2.htm之類的靜態文件全部刪除。這樣就通知了何時要進行緩存。
      現在還剩下一個問題,如何生成靜態文件?
      我們注意到,之前我們提到的“同樣的內容”。我們可以將改造前的default.ASP、listThread.ASP等拷貝一個副本,取名為 default_d.ASP、listThread_2.ASP,且在同一個目錄中(理論上listThtrad.ASP?subID=123同 LISTtHREAD_D.ASP?SUBID=123的訪問結果會是同樣的內容),這樣我們在需要生成靜態文件的邏輯中,通過WEB訪問請求的方式調用 改造前的副本,得到html代碼,并存儲為靜態文件。這個web請求實際上相當于在任何真實瀏覽者訪問靜態內容之前,由服務器自身現察看將會輸出的 html,然后返回這些代碼,利用文件操作功能存儲為靜態文件。這樣,緩存文件就在真正瀏覽者之前被創建。
      這樣的方案幾乎不觸動原來的布局,幾乎 不會造成因為改造出現404之類的錯誤。其次,靜態文件也會幫助你的站點容易被被google之類的搜索引擎收錄。何樂而不為?

      最后,提醒,通過 web訪問,ASP編程環境下,很多人采用xmlhttp組件訪問,這會造成很多問題。xmlhttp自身會cache請求的資源,導致我們通過此組件請 求得到的內容不是最新的,造成邏輯上的混亂。所以,應當選擇xml Server http對象或者winhttp組件來實現web請求資源。
      使用ASP中的緩存技術可以很大程度上提高你的網站性能,其實這些實現方法是非常的簡單,它將說明如何在服務器上的緩存是如何工作以及你如何使用一種被稱為 斷開連接的ADO連接技術。
    在介紹這些技術之前先說明一下到底什么是ASP的緩存技術。
      所謂緩存其實就是在內存中開辟一個用 來保存數據的空間,使用緩存你就不用頻繁的訪問你保存在硬盤上的數據了,靈活的使用緩存你就免去了心疼的看著可憐的硬盤飽受讀數據時的折磨了。當你一旦執 行了一個查詢動作,并且將查詢結果放入緩存中后,你就可以很迅速的重復訪問這些數據了。而如果你不把數據放入緩存的話,當你再次執行這個查詢時,服務器會 將進程耗費在從數據庫中獲取并排序上了。
    當數據保存在緩存中時,再次查詢時耗費的時間主要是在顯示數據的時間上了。也就是說,我們不應該把經常需要改變的數據放到服務端的緩存中,我們應該把改變少,但是又需要經常訪問的數據放到緩存中。

      現在我們先討論ASP 在服務端使用緩存的技術,過會再討論ASP如何在客戶端使用緩存的技術。
      當你有大量的數據(靜態的,就是說變動比較少的)需要顯 示給客戶端時,你就可以考慮使用服務端的緩存技術了。這種技術尤其適用于那些顯示風格一致性比較強的網站(呵呵,對于非主流的網站可不好用的說。)
      其實實現方法特別的簡單,大家只要看看下面這個簡單的例子就明白了。
      這是一個用來顯示書籍分類的例子程序
      DisplayBooks.ASP 文件:

    < %@ LANGUAGE=JavaScript % >< html >< body >< form method=post >書籍分類; < %= getBooksListBox() % >< p>< input type=submit >< %function getBooksListBox(){BooksListBox = application(“BooksListBox”)if (BooksListBox != null) return BooksListBox;crlf = String.fromCharCode(13, 10)BooksListBox = “< select name=Books>” + crlf;SQL = “Select * FROM Books orDER BY Name”;cnnBooks = Server.CreateObject(“ADODB.Connection”);cnnBooks.Open(“Books”, “Admin”,”");rstBooks = cnnBooks.Execute(SQL);fldBookName = rstBooks(“BookName”);while (!rstBooks.EOF){BooksListBox = BooksListBox + ” < option>” +fldBookName + “” + crlf;rstBooks.MoveNext();}BooksListBox = BooksListBox + “”Application(“BooksListBox”) = BooksListBoxreturn BooksListBox;}% >

    NET技術Asp優化,asp緩存技術,轉載需保留來源!

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

    主站蜘蛛池模板: 国产精品资源在线观看 | 色爱区综合激情五月综合色 | 国产精品视频成人 | 337q日本大胆欧美人术艺术 | 黄站视频| 五月天激情开心网 | 日本韩国理论片大全在线 | 亚洲国产精品久久久久网站 | 久久综合九九亚洲一区 | 91在线看片一区国产 | 国产高清视频a在线大全 | 起碰97 | 国产一区中文字幕 | 色视频哟女在线观看 | 亚洲成人第一页 | 国产在线视频网 | 日本激情小说 | 蕾丝视频福利网站 | 日韩三级一区 | 五月激情六月丁香 | 影音先锋自拍 | 婷婷在线视频观看 | 唐人社电亚洲一区二区三区 | 伊人色婷婷综在合线亚洲 | 一区二区三区www | 2021国产成人精品国产 | 成人在线视频免费观看 | 91在线视频免费看 | 亚洲国产激情在线一区 | 91在线精品老司机免费播放 | 亚洲国产系列一区二区三区 | 亚洲视频三区 | 一本久道热中字伊人 | 曰曰啪天天拍视频在线 | 天天综合网天天综合色不卡 | 丝袜美女丝袜亚洲综合 | 色哟哟网 | 国产高清网站 | 免费在线色视频 | 扣扣传媒国产aⅴ | 黄黄的网站在线观看 |