2012-04-24 2 views
2

.NET에 웹 응용 프로그램이 있습니다.로컬 저장소 및 검색 최적화

세션 중에 사용자는 세션에서 데이터베이스에서 채워지는 사전 값에 액세스해야합니다. 사용자는 자주 전화를 겁니다.

HTTP 호출을 줄이고 사전 값을 클라이언트에 가져 와서 거기에서 액세스하려고합니다.

이 사전 값을 로컬로 저장하는 것이 데이터를 매우 빨리 검색하는 것과 같은 방식으로 가장 좋은 방법이 무엇인지 알고 싶습니까?

FaceBook의 기능은 "@"과 비슷하므로 @Name을 쓸 때 데이터베이스에서 빠르게 검색을 수행하고 텍스트를 링크로 바꿉니다. 필자의 경우, 검색 할 고정 된 데이터 세트가 있으며 대개 10-15 개의 이름 - 값 쌍을 넘지 않습니다.

나는 쿠키에 값을 저장하는 것을 고려했으나, 저장 한계가 있는지 알지 못하고 검색이 얼마나 빨라지는지도 모릅니다.

도움을 주시면 감사하겠습니다.

은 사전 정적 인 경우 당신은

+0

이 사전은 사용자가 사이트를 방문 할 때마다 또는 이후 모든 방문을 한번 방문 할 때마다 동일한 사전을 사용합니까? –

+0

사전은 대개 정적으로 유지됩니다. 한 달에 한 번 같이 바뀔 수도 있습니다. 그러나 나는 그것이 정적이라고 가정하고 싶다. – Jayesh

답변

1

당신이 그것을 저장하는 JSON.stringifylocalStorage을 사용할 수 있습니다 감사합니다. 이 방법은 사용자가 사이트를 처음 방문 할 때만로드하면됩니다. localStorage에 저장 한 후에는 JavaScript 객체가 해시 테이블처럼 작동하므로 검색 속도를 높이기 위해 페이지가로드 될 때마다 JSON.parse을 사용하여 JavaScript 객체에로드하는 것이 좋습니다.

그런 다음 페이지가로드 될 때마다 사전을 새로 고쳐야하는지 확인하기 위해 간단한 확인을 추가 할 수 있습니다.

var globalDictionaryHash = null; 

function loadDictionary() 
{ 
    if (localStorage.getItem("my_dict") == null) 
    { 
    localStorage.setItem("my_dict", JSON.stringify(myObjectFromAJAXCall)); 
    } 

    globalDictionaryHash = JSON.parse(localStorage.getItem("my_dict")); 
    console.log(globalDictionaryHash['key']); 
}