source

Internet Explorer 캐싱 asp.netmvcjax 결과

ittop 2023. 9. 19. 21:24
반응형

Internet Explorer 캐싱 asp.netmvcjax 결과

인터넷 익스플로러의 페이지에 문제가 있습니다.폼을 호출하는 아약스 콜이 있는데 다른 브라우저에서 링크를 클릭하면 컨트롤러에 전달되어 데이터가 올바르게 로드되지만 IE에서는 한 번 로드되면 컨트롤러를 전달하지 않고도 항상 이전 결과와 동일한 결과를 가져옵니다.

시도:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

컨트롤러 클래스에 있는 이 특성은 캐싱을 비활성화합니다.애플리케이션에 캐싱이 필요 없기 때문에 BaseController 클래스에 캐싱했습니다.

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public abstract class BaseController : Controller
{

OutputCacheAttribute에 대한 자세한 설명은 다음과 같습니다.출력 캐싱을 통한 성능 향상

행동으로 옮길 수도 있습니다.

다음으로 옵션을 설정해 볼 수 있습니다.false:

$.ajax({
    url: '/controller/action',
    type: 'GET',
    cache: false,
    success: function(result) {

    }
});

이 옵션을 선택하면 브라우저에서 요청을 캐시하지 않습니다.


업데이트:

설명에 따라 고유 타임스탬프를 URL에 추가하여 캐싱 문제를 방지할 수 있습니다.

var d = new Date();
var myURL = 'http://myserver/controller/action?d=' + 
    d.getDate() + 
    d.getHours() + 
    d.getMinutes() + 
    d.getMilliseconds();

사용가능HttpMethod = "POST"Ajax 옵션에 따라

var ajaxOpts = new AjaxOptions { UpdateTargetId = "TargetDiv",  HttpMethod = "POST"};

이 exp와 같이;

@Ajax.ActionLink("Text","ActionName", new AjaxOptions { UpdateTargetId = "TargetDiv",  HttpMethod = "POST"})

jQuery와 MS 클라이언트 라이브러리의 IE 캐시 문제를 해결하는 것에 대해 블로그에 올린 적이 있습니다.

http://yoavniran.wordpress.com/2010/04/27/ie-caching-ajax-results-how-to-fix/

도움이 되길 바랍니다!

저는 또한 이것이 유사한(동일하지는 않지만) 문제에 매우 유용하다는 것을 알았습니다.

http://forums.asp.net/t/1681358.aspx/1?Disable+cache+in+Ajax+ActionLink+extension+method+in+asp+net+MVC

기본적으로 요청 시 GET이 아닌 POST를 사용하는지 확인합니다.그렇게 하면 IE가 캐싱하는 것을 막을 수 있을 것 같습니다.

예:

@Ajax.ActionLink("연락처 지우기", MVC)Home.ClearContacts(), 새 Ajax 옵션{HttpMethod = "POST", UpdateTargetId = "targetDiv"})

Ajax Helper를 사용하는 경우 다음을(를) 설정할 수 있습니다.AllowCache에 매개 변수를 지정합니다.false다음과 같이:

@Ajax.ActionLink("AjaxCall", "AjaxMethod", "DeconflictedFiles",
                 new { }, 
                 new AjaxOptions
                 {
                     AllowCache = false,
                 }) 

IE는 통화 결과를 캐시하지 않습니다.

실제로 IE 브라우저 캐싱에서는 자동으로 지워지지 않지만 크롬 스크립트에서는 작동이 허용됩니다.따라서 브라우저 수준에서 데이터를 지우도록 시도해야 합니다.

언급URL : https://stackoverflow.com/questions/2653092/internet-explorer-caching-asp-netmvc-ajax-results

반응형