2011-11-11 2 views
0

서버에 데이터를 요청하는 셰어 포인트 페이지 안에 웹 파트가 있습니다. 웹 서비스 MyWebService.asmx 내부 다음 하나Ajax 캐시 문제가 있습니까? 또는 다른 것?

function GetPeriod() { 
    var period; 
    $.ajax({ 
     url: GetBaseWSUrl() + 'MyWebService.asmx/GetPeriod', 
     type: "post", 
     dataType: "json", 
     data: JSON.stringify({}), 
     contentType: "application/json; charset=utf-8", 
     async: false, 
     success: function (data) { 
      period = data.d; 
     } 
    }); 
    return period; 
} 

처럼 내 코드에서 나는 아약스 요청을하고이를 위해 나는 차례 쿼리의 데이터에 대한 데이터베이스와는 JSON 객체로이 데이터를 반환하는 방법 GetPeriod() 있습니다.

나는 다음과 같은 것들을 수행하는 코드의 조각에서 문제가 발생하고있다 :

  1. 첫 번째 코드는 GetPeriod() 기능
  2. 그런 다음 사용자가 일부 데이터를 변경하고 서버에 변경 사항을 제출할 수 있습니다 호출을
  3. 마지막 코드는 GetPeriod() 함수를 다시 호출

나는에서 GetPeriod() 함수를 호출하고 point n ° 3 데이터베이스에 데이터가 올바르게 저장되어 있어도 업데이트 된 데이터를 볼 수 없습니다!

처음에는 동시성의 문제로 생각하여 async: false 매개 변수를 추가했지만 문제를 해결하지 못했습니다. 이제 데이터가 데이터베이스에 올바르게 저장 되었기 때문에 캐쉬 문제라고 생각합니다. 따라서 cache: false 매개 변수를 사용해 보았지만 이러한 솔루션 중 아무 것도 작동하지 않습니다.

또한 프로파일 링을 위해 데이터베이스를 넣으려고 시도했는데 클라이언트가 HTTP 요청을 발행 한 시간과 쿼리가 실제로 얻은 시간 사이에 불일치가 발생할 수 있다고하더라도 효과적인 요청이 호출됨을 알 수 있습니다. 데이터베이스에서 실행됩니다.

내가 완전히 이것에 대해 길을 잃지입니다 ....

어떤 도움이

?

+0

이 문제는 모든 브라우저에서 발생합니까? 아니면 그냥? – Patricia

+0

@ 패트리샤 : 나는 셰어 포인트 때문에 IE8/9를 사용하려고합니다. :) 물론 – Lorenzo

+0

맞습니다. 캐시에 문제가 발생했습니다 : 과거에는 잘못된 옵션이었습니다. 나는 그것을 어떻게 풀어 냈는지 대답 할 것이다. – Patricia

답변

0

이전에 실행했습니다.

$.ajaxSetup({ 
    // Disable caching of AJAX responses */ 
    cache: false 
}); 

$ .ajax의 일부인 캐시 옵션이 작동하지 않는 이유를 모르겠다.

+0

감사합니다. Patricia. 나는이 방법을 사용하고 있지만 아무것도하지 않고있다 ... : ( – Lorenzo

+0

매개 변수가 요청의 마지막에 붙어 있지 않은가? – Patricia

관련 문제