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이 여러 번 실패하는 상황에 직면했습니다.
위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 여러분에게 도움이 되기를 바랍니다.
관련 기사:
Ajax 액세스를 사용할 때 IE8이 매번 새로 고칠 수 없는 문제
IE에서 Ajax 제출 잘못된 코드에 대한 빠른 솔루션
위 내용은 IE8에서의 Ajax 캐싱 문제 및 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!