2010-01-15 7 views
1

jQuery jEditable 플러그인을 사용하여 웹 사이트의 일부를 편집하고 있습니다.Jeditable LoadURL 옵션을 사용하여 캐시 된 결과 검색

텍스트 형식으로 텍스트 형식을 사용하기 때문에 서식이 지정되지 않은 데이터를 가져 오는 데 LoadURL 옵션을 사용합니다.

사용자가 텍스트를 편집 한 다음 다시 편집하려고 할 때 문제가 발생합니다. ajax 호출은 캐시 된 결과을 다시 가져옵니다.

임의의 매개 변수를 추가하려했지만 동일한 임의의 숫자가 추가되어 쓸모가 없습니다.

 $(".edit").livequery(function(){$(this).editable("<%=Page.ResolveUrl("~/savetext.aspx") %>", { 
      loadurl : '<%=Page.ResolveUrl("~/gettext.aspx") %>?Rnd=' + Math.random().toString(), 
      type  : 'textarea', 
      cancel : 'Cancel', 
      submit : 'Save', 
      indicator : 'Saving...', 
      rows  : 4, 
      tooltip : 'click to edit' 
      }); 
     }); 

각 호출에 임의의 매개 변수를 추가 jEditable을 알 수있는 방법이 있습니까?

답변

1

간헐적으로 만 보입니다. gettext.aspx (필자의 경우 PHP 코드)와 동등한 점은 브라우저 캐싱을 방지하기 위해 응답 헤더를 설정하지 않았다는 것입니다. 나는 이런 식으로 뭔가를 추가하고 을 보인다는 행동해야 할 더 나은 :

header("Expires: Mon, 20 Dec 1998 01:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 

내가 더 ASP 개발자는 아니지만, 주위를 검색 한 후 내가 해당이 될 것 같아요 :

HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
HttpContext.Current.Response.Cache.SetNoStore(); 
+0

좋은 일, 나는 시도 할 것이다. –