Web應用在業務層實現資料緩衝

來源:互聯網
上載者:User
  最近做一個Web項目,用了許多自訂的資料,其中一部分是儲存在XML檔案中,一部分是儲存在資料庫,這些資料當系統正式使用後,其實都不會變化很頻繁,卻使用得很頻繁,一個很自然的想法就是把這些資料放到Cache中,這樣能很大提高效率.但是卻很久沒找到在業務層使用Cache的方法,憂鬱.在業務層使用了單件模式,將要緩衝的資料放到一個ArrayList中,使用時,如果ArrayList中資料為空白它重新去取資料,並提供一個清除它的方法,在Web層中要使用這些資料的頁面都建立基於依賴設定檔的Cache,並提供一個回呼函數,當設定檔改變時,清除ArraryList的資料,再重新建立一次Cache(原來的Cache已經失效,如果想下次還有效,只有再建立一次).很明顯,這樣做很變態,不但破壞了原來簡明的結構,還加多了工作量.不爽.幸好,不負有心人,讓我終於找到了.對於在Asp.Net環境下使用的組件,可以用System.Web.HttpRuntime.Cache來訪問Cache ,有了這個,一切都好辦了,把Cache建立直接移到業務就是了.

  可惜的是日前存在資料庫的資料沒辦法通過使用這種方法來緩衝(當然是可以通過單件模式以及輔助的方法來提高一點效率,但很彆扭),在1.X下Cache只提供基於時間,關鍵字,檔案建立依賴性,好訊息是在2.0已經提供基於資料庫來建立Cache依賴性,熱切地期盼VS2005!

  另外,System.Web.HttpRuntime.AppDomainAppVirtualPath是可以找到當前應用的虛擬目錄的,System.Web.HttpContext.Current 與頁面背景Page.Context是等價的,有許多情況下應該也是很有用.但同樣,如果在底層使用了這些方法,增加了組件之間的耦合,而且這些組件也只能放在Web下用了.

  如果其他朋友有好的辦法或方法,多指教.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.