2014-07-08 1 views
0

내 ExtJS 응용 프로그램의 아주 이상한 동작에 직면했습니다. 때로는 오래된 JavaScript 코드 나 오래된 ExtJS 뷰를 볼 수 있습니다. Ctrl + F5로 웹 페이지를 새로 고침해도 오래된 콘텐츠를 찾을 수 있습니다. 때로는 정확한 페이지를 볼 수 있지만 오래된 페이지를 다시로드하십시오.ExtJS 응용 프로그램의 오래된 스크립트 및 UI

혼합 된 콘텐츠가있는 것 같습니다. 예를 들어, 일부 레이블을 제거한 다음 몇 가지 양식을 추가합니다. 때로는 양식과 라벨을 모두 볼 수 있습니다.

브라우저의 캐시를 지우는 것은 아무런 영향을주지 않으며 취소 된 VM에서 페이지를 여는 것입니다.

나는 기본보기를 작성하기 전에 내 Ext.application 인스턴스의 launch 기능에

Ext.Loader.setConfig({ 
     disableCaching: false 
    }); 
    Ext.data.Connection.disableCaching = false; 
    Ext.data.proxy.Server.prototype.noCache = false; 
    Ext.Ajax.disableCaching = false; 

을 넣어했지만, 어떤 효과가처럼은 보이지 않는다.

이전에 본 적이 없기 때문에 이것은 매우 이상합니다.

UPD : 지금은 구형 패널을 볼 수 있지만 js의 코드는 괜찮습니다 (차이점은 새 버전에서는 레이블이 없음). 이것은 정말로 이상합니다.

답변

0

일부 브라우저는 정적 리소스를 캐싱 할 때 다른 브라우저보다 더 공격적입니다. 일반적으로 URL 패턴을 사용하여 캐시합니다. 당신이 스크립트를 직접 포함하는 경우

이 같이 좀 스크립트 자원 URL에 날짜 매개 변수를 추가 할 수 있습니다 src='/js/myfile.js?date=1234567'를 동적 페이지가로드 (중 서버 측 또는 JS를 통해) 새로운 타임 스탬프를 매번 생성하는 곳

ExtJS는 로더를 통해로드하는 파일 리소스와이 리소스가 생성하는 모든 AJAX 요청에 _dc=timestamp 매개 변수를 자동으로 추가합니다.

+0

js에 타임 스탬프를 추가했습니다. 도움이되지 않았습니다. 또한 이러한 오래된 스크립트는 새 브라우저에서도 표시되므로 ExtJS 캐싱 문제라고 생각합니다. –

+0

대기중인 '오래된'스크립트는 어떤 방식으로 참조됩니까? – dbrin

0

좋아, 발견 : 실수로 같은 xtype을 가진 개체를 정의하고 어떤 종류의 경쟁 상태가 발생했습니다. 그리고 JS 자체가 괜찮 았음에도 불구하고 때때로 다른 JS에서 패널을 보았습니다.