일부 참조 데이터에서 일부 드롭 다운 상자를 작성해야합니다. 예 : 도시 목록, 국가 목록 등 다양한 웹 양식을 작성해야합니다. 내 생각에, 우리는 우리의 애플리케이션에이 데이터를 캐쉬해야한다. 그래서 우리는 모든 형태의 데이터베이스를 공격하지 않는다. 나는 캐싱과 ASP.Net이 처음이다. 이 작업을 수행하는 방법을 제안하십시오.ASP.Net의 데이터 캐싱
답변
나는 항상 Cache 객체에 쉽게 접근 할 수있는 모든 프로젝트에 다음 클래스를 추가한다. 이를 실행하는 것은 하산 칸의 대답에 이어 좋은 방법이 될 것입니다.
public static class CacheHelper
{
/// <summary>
/// Insert value into the cache using
/// appropriate name/value pairs
/// </summary>
/// <typeparam name="T">Type of cached item</typeparam>
/// <param name="o">Item to be cached</param>
/// <param name="key">Name of item</param>
public static void Add<T>(T o, string key, double Timeout)
{
HttpContext.Current.Cache.Insert(
key,
o,
null,
DateTime.Now.AddMinutes(Timeout),
System.Web.Caching.Cache.NoSlidingExpiration);
}
/// <summary>
/// Remove item from cache
/// </summary>
/// <param name="key">Name of cached item</param>
public static void Clear(string key)
{
HttpContext.Current.Cache.Remove(key);
}
/// <summary>
/// Check for item in cache
/// </summary>
/// <param name="key">Name of cached item</param>
/// <returns></returns>
public static bool Exists(string key)
{
return HttpContext.Current.Cache[key] != null;
}
/// <summary>
/// Retrieve cached item
/// </summary>
/// <typeparam name="T">Type of cached item</typeparam>
/// <param name="key">Name of cached item</param>
/// <param name="value">Cached value. Default(T) if item doesn't exist.</param>
/// <returns>Cached item as type</returns>
public static bool Get<T>(string key, out T value)
{
try
{
if (!Exists(key))
{
value = default(T);
return false;
}
value = (T)HttpContext.Current.Cache[key];
}
catch
{
value = default(T);
return false;
}
return true;
}
}
당신의 다른 질문에서 나는 dal, business 및 presentation 레이어가있는 3 레이어 아키텍처를 사용하고 있다고 읽었습니다.
그래서 데이터 액세스 클래스가 있다고 가정합니다. 이상적인 일은 동일한 클래스의 캐시 된 구현을 가지고 캐싱을 수행하는 것입니다.
예 : 사용자 인터페이스가 IUserRepository 인 경우 UserRepository 클래스가이를 구현하고 메소드를 통해 db에 항목을 추가/삭제/업데이트하면 UserRepository 객체의 인스턴스를 포함하는 CachedUserRepository를 가질 수 있으며 메소드를 처음 보게됩니다 일부 키 (메소드 매개 변수에서 파생)에 대해 캐시에 저장하고 항목이 발견되면 내부 객체에 대한 메소드를 호출합니다. 데이터를 얻는다; 캐시에 추가 한 다음 반환하십시오.
귀하의 CachedUserRepository도 분명히 캐시 개체의 인스턴스를 갖게됩니다. 캐시 개체 사용 방법에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/18c1wd61(v=vs.85).aspx을 참조하십시오.
... 일반 문화권/어휘에만 해당하는 것을 "장식 자"패턴이라고합니다. 즉, 캐싱을 구현하는 추가 기능을 사용하여 초기 저장소를 "장식"합니다. – tsimbalar
- 1. ASP.NET의 데이터 캐싱
- 2. ASP.NET의 데이터 캐싱
- 3. ASP.Net의 페이지 캐싱 문제
- 4. ASP.NET의 캐싱 문제
- 5. asp.net에서 데이터 캐싱 클라이언트 측?
- 6. asmx asp.net의 POST 요청시 WebMethod 캐싱
- 7. ASP.NET의 파일 (메모리 아님)에 캐싱
- 8. NHibernate로로드 된 캐싱 데이터
- 9. 웹보기 데이터 캐싱 (안드로이드)
- 10. PHP에서의 초급 데이터 캐싱
- 11. mysql에서 데이터 캐싱
- 12. 캐싱 데이터 패킷
- 13. autocompleteextender에서 데이터 캐싱
- 14. Active Directory 데이터 캐싱
- 15. 데이터 캐싱 끄기 asp.net
- 16. 동적 데이터 캐싱 처리
- 17. 자바에서 DB 데이터 캐싱
- 18. 캐싱 관련 데이터
- 19. WCF 서비스 캐싱 데이터?
- 20. 인증 데이터 캐싱
- 21. Active Directory 데이터 캐싱
- 22. 플렉스에서 flv 데이터 캐싱
- 23. 캐싱 Linq2Sql 데이터
- 24. Sharepoint 2010 - 캐싱 데이터
- 25. ASP.NET의 데이터 바인딩
- 26. asp.net의 데이터 바인딩 식
- 27. ASP.NET의 데이터 바인딩
- 28. ASP.NET의 정적 데이터 집합
- 29. ASP.NET의 AS400 데이터 연결
- 30. ASP.NET의 양방향 데이터 바인딩
좋은 코딩 ... upvoted –