>  기사  >  웹 프론트엔드  >  IE8에서의 Ajax 캐싱 문제 및 솔루션

IE8에서의 Ajax 캐싱 문제 및 솔루션

亚连
亚连원래의
2018-05-23 16:54:101576검색

AJAX는 "Asynchronous Javascript And XML"(Asynchronous JavaScript and XML)을 의미하며 대화형 웹 애플리케이션을 만들기 위한 웹 개발 기술을 나타냅니다. 다음으로 이번 글을 통해 IE8에서의 Ajax 캐싱 문제와 해결방법에 대해 소개해드리겠습니다. 함께 살펴보도록 하겠습니다

Ajax 소개

AJAX는 "Asynchronous Javascript And XML"(비동기 JavaScript 및 XML)은 대화형 웹 애플리케이션을 위한 생성 웹 개발 기술을 말합니다.

AJAX = 비동기 JavaScript 및 XML(표준 범용 마크업 언어의 하위 집합).

AJAX는 빠르고 동적인 웹 페이지를 만드는 기술입니다.

AJAX를 사용하면 백그라운드에서 서버와 소량의 데이터를 교환하여 웹페이지를 비동기적으로 업데이트할 수 있습니다. 이는 전체 페이지를 다시 로드하지 않고도 웹페이지의 일부를 업데이트할 수 있음을 의미합니다.

다음 코드는 다른 브라우저에서는 잘 작동하지만 IE8에서는 이상한 문제가 발생합니다.

$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
success:function(item){
debugger;
....
}
});

주의 깊게 조사한 결과 IE8의 Ajax 캐시 문제로 밝혀졌습니다. 젠장, 실행이 이 지점에 도달하면 실제로는 우리의 백그라운드 코드에 액세스하지 않고 이전에 캐시된 결과를 사용합니다. 백그라운드에서 디버깅할 때 응답이 없고 이것이 문제라는 것을 알았습니다! ! ! ! IE8은 기꺼이 중단될 것입니다.

그런데 이상한 점은 이러한 코드가 왜 여기에만 캐시되고 다른 곳에는 캐시되지 않는다는 것인가요?

솔루션:

1.

$.ajaxSetup({ cache: false });

2. 매개변수 + 속성: 캐시: false

$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
cache:false,
success:function(item){
debugger;
....
}
});

3. URL 뒤에 추가할 수도 있습니다. 및 기타 방법.

강의:

프로그래머는 길을 건널 때 양쪽을 살펴야 합니다!

기본값을 너무 신뢰하지 마세요. 어떤 속성이 필요한지 지정하세요. 따라서 다음을 지정하는 것이 가장 좋습니다: 매번 캐시:false, 그렇지 않으면 각 js 페이지가 처음에 한 번 실행되도록 보장됩니다:

$.ajaxSetup({ cache: false });

실제로 경로에 타임스탬프나 임의의 숫자를 추가하는 방법은 다음과 같습니다. 때로는 신뢰할 수 없습니다! 어쩌면 브라우저가 이를 무시할 수도 있습니다. 어쨌든, IE8에서는 타임스탬프가 있는 URL이 여러 번 실패하는 상황에 직면했습니다.

위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 여러분에게 도움이 되기를 바랍니다.

관련 기사:

IE8/IE9에서 Ajax 캐싱 문제

Ajax 액세스를 사용할 때 IE8이 매번 새로 고칠 수 없는 문제

IE에서 Ajax 제출 잘못된 코드에 대한 빠른 솔루션

위 내용은 IE8에서의 Ajax 캐싱 문제 및 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.