ASP快取技術 (轉)
使用中的快取技術可以很大程度上提高你的網站,其實這些實現方法是非常的簡單,它將說明如何在上的快取是如何工作以及你如何使用一種被稱為斷開連線的ADO連線技術。
在介紹這些技術之前先說明一下到底什麼是ASP的快取技術。
所謂快取其實就是在中開闢一個用來儲存資料的空間,使用快取你就不用頻繁的訪問你儲存在上的資料了,靈活的使用快取你就免去了心疼的看著可憐的硬碟飽受讀資料時的折磨了。當你一旦了一個查詢動作,並且將查詢結果放入快取中後,你就可以很迅速的重複訪問這些資料了。而如果你不把資料放入快取的話,當你再次執行這個查詢時,伺服器會將程式耗費在從中獲取並排序上了。
當資料儲存在快取中時,再次查詢時耗費的時間主要是在顯示資料的時間上了。也就是說,我們不應該把經常需要改變的資料放到服務端的快取中,我們應該把改變少,但是又需要經常訪問的資料放到快取中。
現在我們先討論ASP在服務端使用快取的技術,過會再討論ASP如何在客戶端使用
快取的技術。
當你有大量的資料(靜態的,就是說變動比較少的)需要顯示給客戶端時,你就可以考慮使用服務端的快取技術了。這種技術尤其適用於那些顯示風格一致性比較強的網站(呵呵,對於非主流的網站可不好用的說。)
其實實現方法特別的簡單,大家只要看看下面這個簡單的例子就明白了。
這是一個用來顯示書籍分類的例子
DisplayBooks.ASP:
< %@ LANGUAGE=script % >
< html >
< body >
< fomethod=post >
書籍分類; < %= getBooksListBox() % >
< p>
< input type=submit >
< %
function getBooksListBox()
{
BooksListBox = Application("BooksListBox")
if (BooksListBox != null) return BooksListBox;
crlf = String.fromCharCode(13, 10)
BooksListBox = "< name=Books>" + crlf;
= "SELECT * FROM Books ORDER BY Name";
cnnBooks = Server.Create("ADO.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") = BooksListBox
return BooksListBox;
}
% >
很簡單把,其實就是用了很簡單的Application技術,而且就一句話的不同:
Application("BooksListBox") = BooksListBox
你可以驗證一下你就會發現伺服器上的請求數量會降低不少的。這種情況尤其適合與那些不是很頻繁的網站內容,例如你一天(或則很長時間)只更新一次。
下面再討論一種客戶端的快取技術這種技術也叫斷開連線的ADO連線技術(翻譯水平太次,聽上去怎麼這麼彆扭)。這種技術主要使用在用來儲存個人資訊,例如使用者的密碼,代號等等上面。它主要使用了ADO的一些屬性。同時也回答了一些網友曾經提到過的能否在Applocation中使用ADO的問題。解釋不清楚,下面讓程式碼來發言:
檔案GLOBAL.ASA:
< !--METADATA TYPE="TypeLib" FILE="C:Program FilesCommon Filessystemadomsado15.dll"-- >
< SCRIPT LANGUAGE= RUNAT="Server" >
Sub Application_OnStart
SQL = "SELECT UserName, Pass FROM UserInfo"
cnnUsers = "DSN=User"
Set rsUsers = Server.CreateObject("ADODB.Recordset")
'注意下面這兩句話,就是用來實現那個叫可用的斷開連線的ADO技術
rsCustomers.CursorLocation = adUseClient
rsCustomers.Open SQL, cnnAdvWorks, adOpenStatic, AdLockReadOnly
' 斷開RecordSet的和資料庫的連線
rsCustomers.ActiveConnection = Nothing
Set Application("rsCustomers") = rsCustomers
End Sub
檔案Users.ASP
< %
'Clone方法使得每個使用者擁有自己的一個RecordSet集合
Set yourUsers = Application("rsUsers").Clone
Set UserName = yourUsers("UserName")
Set Password = yourUsers("Password")
Do Until yourUsers.EOF
% >
使用者姓名:< %= UserName % > 使用者密碼:< %= Password % >
< %
yourUsers.MoveNext
L
% >
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-995697/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快取技術快取
- Python快取技術Python快取
- 位元組快取技術快取
- 快取技術淺談快取
- 前端常用的快取技術前端快取
- 快取技術方案改造思考快取
- Redis 快取雪崩,快取擊穿和快取穿透技術方案總結Redis快取穿透
- HTML5中快取技術HTML快取
- ASP.NET快取:方法和最佳實踐 (轉)ASP.NET快取
- 從WebView快取聊到Http 的快取機制 | 掘金技術徵文WebView快取HTTP
- 小工匠聊架構 - 分散式快取技術_快取設計架構分散式快取
- ASP分頁技術原始碼 (轉)原始碼
- 在Flash中使用ASP技術 (轉)
- 前端效能優化之快取技術前端優化快取
- Asp.Net MVC 快取ASP.NETMVC快取
- ASP.NET 2.0快取ASP.NET快取
- 系統效能提升利刃 | 快取技術使用快取
- PHP 中 9 大快取技術總結PHP快取
- ASP.Net快取總結ASP.NET快取
- 搞懂分散式技術15:快取更新的套路分散式快取
- 搞懂分散式技術13:快取的那些事分散式快取
- Android技術積累:圖片快取管理Android快取
- 巧用ASP技術保護DHTML原始碼 (轉)HTML原始碼
- ASP.NET Core - 快取之分散式快取ASP.NET快取分散式
- ASP.NET Core 中的快取ASP.NET快取
- ASP.NET快取的方法分析ASP.NET快取
- ASP.NET清除頁面快取ASP.NET快取
- 轉載快取快取
- Java技術分享:如何設計一個本地快取?Java快取
- 前端優化:瀏覽器快取技術介紹前端優化瀏覽器快取
- PHP快取技術:memcache函式詳解之一PHP快取函式
- 艾偉_轉載:ASP.NET模板引擎技術ASP.NET
- ASP.NET Core - 快取之記憶體快取(上)ASP.NET快取記憶體
- ASP.NET Core - 快取之記憶體快取(下)ASP.NET快取記憶體
- 高手如何處理快取:SpringBoot整合Redis實現快取處理(AOP技術)!快取Spring BootRedis
- [.net 物件導向程式設計進階] (14) 快取(Cache) (一) 認識快取技術物件程式設計快取
- ASP.NET的快取依賴機制-SQL快取依賴篇ASP.NET快取SQL
- 【張逸】ASP.NET:效能與快取ASP.NET快取