Internet Explorer의 페이지에 문제가 있습니다. 컨트롤러에서 전달하고 올바르게 데이터를로드하는 링크를 클릭하면 다른 브라우저에서 양식을 호출하는 ajax 호출이 있습니다. 하지만 IE에서, 한 번로드되면, 그것은 내게 컨트롤러에서 전달하지 않고 같은 오래된 결과를 가져온다.Internet Explorer 캐싱 asp.netmvc 아약스 결과
답변
시도 :
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
이 속성, 컨트롤러 클래스에 배치되어 캐싱을 비활성화합니다. 내 응용 프로그램에서 캐싱을 필요로하지 않기 때문에, 나는 나의 BaseController 클래스에 배치 : Improving Performance with Output Caching
당신은 너무 행동에 배치 할 수 있습니다 :
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public abstract class BaseController : Controller
{
여기 OutputCacheAttribute에 대한 좋은 설명입니다.
캐싱은 IE에서만 발생하기 때문에 문제가되지 않습니다. –
@Malcolm Frexner : 캐싱 전략은 브라우저마다 다릅니다. IE에는 몇 가지 문제가 있습니다. – LukLed
당신은 false
에 cache
옵션을 설정을 시도 할 수 :
$.ajax({
url: '/controller/action',
type: 'GET',
cache: false,
success: function(result) {
}
});
이 옵션은 요청을 캐시하지 않도록 브라우저를 강제로.
UPDATE : 캐싱 문제를 방지하기 위해 사용자가 URL에 고유 한 타임 스탬프를 추가 할 수있는 의견을 바탕으로
:
var d = new Date();
var myURL = 'http://myserver/controller/action?d=' +
d.getDate() +
d.getHours() +
d.getMinutes() +
d.getMilliseconds();
글쎄, Microsoft jQuery가 아니라 Ajax. ;)이 설정은 모든 Ajax 기반 호출에 적용됩니까? msAjax도? –
죄송합니다. 질문에 대한 중요한 부분을 놓쳤습니다. –
jQuery를 사용하는 경우 정답 인만큼 upvoting입니다. 사실 MVC에서 MS Ajax 처리기가 아니라 jQuery를 사용하는 경우 IE는 메서드에 설정 한 모든 특성을 완전히 무시합니다. – James
나는 jQuery를하고 MS 클라이언트 라이브러리 모두에 대해 IE 캐시 문제를 해결에 대해 블로그했습니다
http://yoavniran.wordpress.com/2010/04/27/ie-caching-ajax-results-how-to-fix/
희망이 도움이!
이와 비슷한 (동일하지는 않은) 문제에 대해서도 매우 유용합니다.
은 기본적으로 귀하의 요청에 GET 반대로 당신이 POST를 사용하고 있는지 확인하십시오. 그렇게하면 IE가 캐싱되지 못하는 것 같습니다.
예 :
Ajax.ActionLink @("클리어 연락처", MVC.Home.ClearContacts(), 새로운 AjaxOptions {HttpMethod = "POST", UpdateTargetId = "targetDiv"})
당신이 할 수있는 귀하의 AjaxOptions에 HttpMethod = "POST"
을 사용하십시오.
var ajaxOpts = new AjaxOptions { UpdateTargetId = "TargetDiv", HttpMethod = "POST"};
@Ajax.ActionLink("AjaxCall", "AjaxMethod", "DeconflictedFiles",
new { },
new AjaxOptions
{
AllowCache = false,
})
을 그리고 IE는 호출의 결과를 캐시하지 않습니다 당신이 아약스 도우미를 사용하는 경우
@Ajax.ActionLink("Text","ActionName", new AjaxOptions { UpdateTargetId = "TargetDiv", HttpMethod = "POST"})
, 당신은이 같은 false
에 AllowCache
매개 변수를 설정할 수 있습니다.
IE 브라우저에서 실제로 캐싱이 자동으로 해제되지 않습니다. 하지만 크롬 스크립트가 허용됩니다. 브라우저 수준에서 데이터를 지우려면 을 시도해야합니다.
- 1. Internet Explorer 캐싱 플래시 SWF 문제
- 2. Internet Explorer 아약스 요청이 반환되지 않음
- 3. Internet Explorer 패딩 문제
- 4. jQuery를 크로스 도메인 아약스 호출 및 Internet Explorer
- 5. Ajax : Internet Explorer 오류
- 6. Internet Explorer 테두리 버그
- 7. 미디어 쿼리 Internet Explorer
- 8. Bugged Internet Explorer
- 9. Internet Explorer 플래시 블록
- 10. Internet Explorer 8 + Deflate
- 11. GWT Internet Explorer
- 12. Internet Explorer 렌더링 문제
- 13. Frames + Internet Explorer oddities
- 14. HTML5 및 Internet Explorer?
- 15. Internet Explorer 6 및
- 16. Internet Explorer 오류
- 17. Internet Explorer visible repaint
- 18. Internet Explorer AddOn
- 19. ActiveX가없는 Internet Explorer 자동화
- 20. windbg에서 Internet Explorer 디버깅
- 21. .load Internet Explorer 오류
- 22. 디버깅시 Internet Explorer 시작
- 23. Internet Explorer javascript compatibility
- 24. Internet explorer 동적 이미지로드
- 25. Internet Explorer 이미지 오프셋
- 26. Internet Explorer 8.0.6011.19088IC
- 27. Internet Explorer P3P 문제! 도움!
- 28. Internet Explorer 6 무작위로 보내기
- 29. 여러 Internet Explorer 창 제어?
- 30. jQuery를 아약스 캐싱
[IE8에서 AJAX 결과의 예상치 못한 캐싱] 가능한 복제본 (http://stackoverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie8) –