jquery 를 이용해서 html에서 웹서비스를 이용하는 프로젝트를 하고 있습니다.
로그인해서 캐시에 데이타를 집어넣고 로그아웃때 지우는걸 하고싶습니다.
로그인페이지에서 로그인버튼을 누르면 웹서비스에서 체크한다음 캐시에 값을 넣어두고
요청마다 그 캐시의 값을 읽는게 하고싶습니다.
트리데이타를 위해 쿼리를 날리고 그 데이타를 재귀함수를 통해 다시 데이타테이블을 만들어서
그 데이타테이블을 데이타셋에 담아서 아래의 함수를 호출합니다.
private void SetTreeData(DataSet ds)
{
DataTable dtCache = (DataTable)HttpContext.Current.Cache["tree"];
DataTable dtTreeData = ds.Tables[0];
if (dtCache != null)
{
if (!dtCache.Equals(dtTreeData))
{
SetCache(dtCache, dtTreeData);
}
}
else
{
SetCache(dtCache, dtTreeData);
}
}
private void SetCache(DataTable dtCache, DataTable dvTreeData)
{
CacheDependency dep = new CacheDependency(Server.MapPath(@"/TreeData.html"));
string sPath = Server.MapPath(@"/TreeData.html");
FileStream fs = new FileStream(sPath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
foreach (DataRow dr in dvTreeData.Rows)
{
sw.WriteLine(dr["li"].ToString());
}
sw.Flush();
sw.Close();
dtCache = dvTreeData;
HttpContext.Current.Cache.Insert("tree", dtCache, dep, DateTime.Now.AddDays(1), TimeSpan.Zero);
}
데이타를 읽어서 파일에 쓴다음 그걸 읽어서 트리에 뿌리고 있는데.
이걸 매번 수행해서 문제가 있습니다.
그래서 캐시에 넣어놓고 있다면 파일에 쓰는부분과 캐시에 넣는 부분을 하지 않고 싶은데...
잘 안되고 있습니다...
이게 완료되면 로그인후 캐시에 넣고 쓰는걸 해보려고 했는데...
현 상황으로 진행이 안될거 같습니다...
도움이 절실합니다 ㅠㅠ
[최초 등록일: ]
[최종 수정일: 10/14/2008]