질문
최근에 EasyUi를 사용하여 백그라운드 시스템을 개발했습니다. 테스트 중에 이상한 문제를 발견했습니다. $ ( 'dg'). DataGrid ( 'Reload'); 테이블 데이터를 다시로드 할 때 전혀 반응이 없었습니다. 나중에 나는 응답이 없다는 것이 아니라 브라우저가 캐시를 사용했다는 것을 알았습니다.
해결책
온라인 네티즌에서 요약 된 몇 가지 솔루션이 있습니다.
1. URL 후 타임 스탬프를 추가하여 첫 번째로드에서 액세스하고 다시로드에 액세스 한 URL이 일치하지 않도록 시스템이 IE 캐시를 사용할 수 없도록합니다. 테스트를 통해 EasyUI 요청에는 요청 된 후에 이미 임의 숫자 _145232xxx가 있지만 IE는 여전히 캐시를 사용하는 것으로 나타났습니다. 나중에 요청 된 JS에 rand = xxx (math.rand ()에 의해 생성 된 랜덤 번호)를 추가했으며 캐시를 사용하지 않습니다. (IE8에서 IE11로 테스트했습니다)
2. <meta>에 <head>에 추가하여 캐시를 지우는 것과 비슷한 방법을 사용하십시오.
코드 사본은 다음과 같습니다.
<meta http-equiv = "pragma"content = "no-cache">
<meta http-equiv = "캐시-제어"content = "no-cache, must-revalidate">
<meta http-equiv = "만료"content = "wed, 1997 년 2 월 26 일 08:21:57 GMT">
불행히도 많은 네티즌과 마찬가지로이 방법에 실패했습니다. :(
3. DataGrid로드에 해당하는 방법을 'Post'로 선언하면이 솔루션이 가장 빠릅니다. 그러나 몇 가지 문제가 있습니다.
• 서버 인터페이스가 포스트 모드를 지원하지 않으면 중지됩니다.
• 서버 인터페이스가 자체를 제어 할 수 있다면 프론트 엔드에 대한 이러한 타협 방식은 인터페이스가 전혀 편안하지 않습니다! RESTFUL 인터페이스는 기본적으로 쿼리 설계를 위해 얻는다는 것을 알아야합니다.
요약
그래서 첫 번째 방법입니다. URL에 직접 임의의 숫자를 추가하는 것은 사용하기 쉽습니다. 서버 인터페이스를 변경하고 싶지 않은 코드에 집착 한 것에 대해 용서해주십시오.