2013-11-23 1 views
0

브라우저 캐시에 Ajax 응답을 저장하려고합니다. 나는 (example.com)과 같은 유일한 URL을 위해 그것을 저장하는 것을 알고 있지만 (example.com?xyz=abc%20efg&mno=hjk)과 같은 URL을 갖는 데이터를 저장하고 싶다.jquery로 브라우저 캐시에 ajax 응답을 저장하는 방법

내 코드 :

beforeSend: function() { 
       var addC=url;   // I want to add data also with this url 
       console.log(addC); 
       if (localCache.exist(addC)) { 
        printRes(localCache.get(url)); 
        console.log("cached values"); 
        return false; 
       } 
       return true; 
      }, 

그리고

var localCache = { 
    data: {}, 
    remove: function (url) { 
     delete localCache.data[url]; 
    }, 
    exist: function (url) { 
     return localCache.data.hasOwnProperty(url) && localCache.data[url] !== null; 
    }, 
    get: function (url) { 
     console.log('Getting in cache for url' + url); 
     return localCache.data[url]; 
    }, 
    set: function (url, cachedData, callback) { 
     localCache.remove(url); 
     localCache.data[url] = cachedData; 
     if ($.isFunction(callback)) callback(cachedData); 
    } 
}; 

사람이이 문제를 해결하기 위해 도와주세요.

+0

로컬 스토리지를 찾고 있다면? 각 URL은 매개 변수의 유무에 관계없이 맵 객체의 값을 나타내는 키입니다. 객체를 URL로 인코딩 된 문자열로 변환하는 방법을 묻고 있습니까? 그렇다면 [이 질문] (http://stackoverflow.com/questions/19557087/library-to-convert-json-to-urlencoded)을보십시오. 아직도 URL 매개 변수가 항상 올바른 순서로되어 있는지 확인해야하므로 제대로 작동하지 않을지 ... – mccannf

답변

0

docs을 읽고 에서 MDN 나는 잘못 생각하고 있다고 생각합니다. ajax 호출에서 CACHE 속성을 true 으로 캐시하려면 서버에서 적절한 캐시 만료 헤더를 제공하는지 확인하십시오.

[MDN]와 는 또한 (다른-cached- page.html? = 경우 ParameterName 값 같은) 전통적인 GET 파라미터를 사용하여 캐시 된 파일에 액세스하지 마십시오. 이렇게하면 브라우저가 캐시를 우회하여 네트워크에서 을 얻으려고 시도합니다. 자바 스크립트에서 매개 변수가 파싱 된 캐시 된 리소스에 연결하려면 링크의 해시 부분에있는 매개 변수를 사용합니다 (예 : 기타 캐시 된 page.html # 아무거나? parameterName = value).

여기 요구하는 무엇 [키 값 저장]

globalStorage['cache_1'].setItem("key",data); 
+0

내 질문에 답해 주셔서 감사합니다. 내가 원하는 것은 아약스가 서버에 요청을 보낼 때 사용자가 요청한 데이터를 서버가 브라우저 캐시에 저장해야 할 때입니다. 다음에 사용자가 동일한 데이터를 요청하면 캐시에서 표시됩니다. 내 코드는 url'/ example'을 사용할 때 작동합니다. 하지만 내 문제는 다른 요청에 대한 캐시 된 데이터를 표시합니다 그 시점에서 동일한 URL에 대한 다른 요청이 있습니다. 그래서 저는'ajax data :'를'url :'과 함께 사용하기를 원합니다. – james

관련 문제