javascript - 프런트엔드 콘텐츠를 수정하기 위해 IE 브라우저로 프로젝트를 엽니다. 배경 데이터는 수정되지만 프런트엔드 페이지의 콘텐츠는 변경되지 않은 상태로 유지됩니다. Google Chrome을 사용하여 프런트엔드 페이지를 새로 고칠 수 있는지 테스트합니다. 해결해주세요.
过去多啦不再A梦2017-05-27 17:40:35
0
9
978
1. IE 브라우저를 사용하여 프로젝트를 열고 프런트엔드 콘텐츠를 수정합니다. 배경 데이터는 수정되지만 프런트엔드 페이지의 콘텐츠는 변경되지 않습니다.
질문하신 분의 주소를 보면 rand=Math.random()가 추가되어 있으니 이 부분에서는 캐싱 문제는 없을 것 같습니다.
그런데 문제는 코드의 유일한 링크...update가 데이터와 관련된 것처럼 보이지만 업데이트 동작이 서버에서 클라이언트로(검색), 아니면 클라이언트에서 서버로(저장)로 수행되는 것입니까? 업데이트 자체에 대해 일반적으로 사용되는 시나리오로 판단하면 이를 취해야 합니다. 하지만 큰 형태의 행동으로 판단하면 저장해야 할 것 같습니다...
아직 이 얘기는 하지 말자. 주제에 대한 설명을 보면 실제로 두 가지 프로세스가 있습니다. 하나는 입금이고 다른 하나는 가져가는 것입니다. 보통 문제는 검색할 때 발생하기 때문에 다들 캐시 때문이라고 추측하는데... 하지만 대개는 확실하지 않으니 문제 해결을 하셔야 합니다
IE에 저장하고 Chrome에서 검색
Chrome에 저장하고 IE에서 검색
우리는 이미 Chrome이 정상이라는 것을 알고 있으므로 IE가 저장 시 비정상인지, 검색 시 비정상인지, 아니면 둘 다 아닌지 알아낼 수 있습니다...
다음에 할 일...순수한 프론트엔드를 어떻게 해야 할지 모르겠습니다. 캐싱 문제가 해결되면 나머지는 서버와 협력하여 문제를 찾는 것입니다...
캐시를 삭제하시겠습니까?
주로 캐시로 인해 발생합니다. 이 정보를 쿼리하는 데 사용하는 인터페이스는 캐시된 데이터를 사용하지 않도록 하기 위해 임의의 매개변수를 사용합니까?
이전에도 이 문제가 발생했는데 Safari에서는 가끔 나타났는데 IE에서는 항상 오프라인 상태였습니다. Chrome은 정상입니다
Safari와 IE는 get 요청 시 캐시하므로 수정 후 마지막으로 캐시된 결과가 호출되기 때문입니다.
해결책은 Ajax 요청에 캐시가 아닌 캐시: false를 설정하는 것입니다
전역적으로 설정할 수도 있습니다
//캐시하지 않음
$.ajaxSetup({ 캐시: false });
질문하신 분의 주소를 보면
rand=Math.random()
가 추가되어 있으니 이 부분에서는 캐싱 문제는 없을 것 같습니다.그런데 문제는 코드의 유일한 링크
...update
가 데이터와 관련된 것처럼 보이지만 업데이트 동작이 서버에서 클라이언트로(검색), 아니면 클라이언트에서 서버로(저장)로 수행되는 것입니까? 업데이트 자체에 대해 일반적으로 사용되는 시나리오로 판단하면 이를 취해야 합니다. 하지만 큰 형태의 행동으로 판단하면 저장해야 할 것 같습니다...아직 이 얘기는 하지 말자. 주제에 대한 설명을 보면 실제로 두 가지 프로세스가 있습니다. 하나는 입금이고 다른 하나는 가져가는 것입니다. 보통 문제는 검색할 때 발생하기 때문에 다들 캐시 때문이라고 추측하는데... 하지만 대개는 확실하지 않으니 문제 해결을 하셔야 합니다
IE에 저장하고 Chrome에서 검색
Chrome에 저장하고 IE에서 검색
우리는 이미 Chrome이 정상이라는 것을 알고 있으므로 IE가 저장 시 비정상인지, 검색 시 비정상인지, 아니면 둘 다 아닌지 알아낼 수 있습니다...
다음에 할 일...순수한 프론트엔드를 어떻게 해야 할지 모르겠습니다. 캐싱 문제가 해결되면 나머지는 서버와 협력하여 문제를 찾는 것입니다...
IE 콘솔에 오류가 있는지 확인하세요
이전에 이 문제가 발생한 적이 있습니다. IE는 모든 요청 데이터를 캐시하고 비정적 데이터 요청 응답에 헤더를 추가합니다.
Cache-Control: no-cache, no-store
F12를 눌러 오류가 있는지 확인하세요. 오류가 없으면 캐시를 삭제하세요
shift+f5를 눌러 캐시를 강제로 새로 고치고 여러 번 새로 고치세요
캐시 문제일 겁니다. IE 및 Edge(최대 14개, Edge 15는 테스트하지 않았습니다...)는 기본적으로 GET의 XHR 콘텐츠를 캐시합니다. 해결책은 일반적으로
GET 대신 POST 요청을 사용하세요(권장하지 않음...)
요청 시
?t=[[某个时间戳]]
@Donle의
Cache-Control
방법은 시도되지 않았습니다...