2011-08-16 3 views
0

Ajax 프록시 (XML 판독기)와 함께 extjs 표를 사용하여 데이터를로드하고 있습니다. 응용 프로그램 요구 사항은 프록시가 서버에서 모든 데이터를 가져 오지만 추가 또는 삭제할 항목이있는 경우에만 그리드가 다시로드되거나 새로 고쳐 져야한다는 것입니다.store.load 메서드를 사용하지 않고 extjs 저장소의 서버에서 프록시 데이터를 가져 오는 방법

검색했습니다 그러나 내가 뭔가를 놓치고 있거나 제대로 검색하지 못하고 있습니다.

내가 원한다. 1) 서버 및 람다에서 초기 그리드 데이터를 가져옵니다. 2) 데이터를 로컬에 저장하십시오. 2) 5 초 후에 서버 응답을 다시 받지만 변경된 사항이있는 경우에만 로컬 데이터와 통화 그리드 새로 고침을 비교하십시오. 사용자가이 페이지에서 벗어날 때까지 무한대로 수행하십시오.

내 문제는 Proxy.Read() 또는 그와 유사한 XML 응답을 처음으로 캡처 할 수있는 방법입니다. 일단 응답을 받으면 더 진행하는 방법을 안다.

미리 도움을 청하십시오.

Jignesh

답변

0

사용하여 동일한 AbstractStore.load 방법으로 코드와 자신의 콜백을 지정합니다.

+0

대체 하시겠습니까? onProxyLoad 메서드를 대체 하시겠습니까? 저장소 소스를 수정하는 대신 onProxyLoad 메서드를 재정의 할 수있는 방법이 있습니까? Store의 load 메소드 사용시 문제는 콜백에 의해로드가 처리 된 후에도 전체 그리드를 계속 새로 고침한다는 점입니다. 콜백이 원하는 경우에만 그리드를 새로 고치고 싶습니다. 스토어의로드 메소드는 콜백 함수를 가지고 있는지 여부와 관계없이 항상 새로 고침을 수행합니다. –

+0

저장소로드를 사용하지 않고 Proxy의 processResponse를 사용하는 예제와 같은 것을 원합니다. 정확한 구문을 모르지만 proxy.read (callback : processResponse)와 같아야합니다. –

0


VAR 작업 = 새로운 Ext.data.Operation 사용해보십시오 ({ 조치는 '읽기'를 });
store.proxy.read (operation, callbackmethod, store);

및 callbackmethod 내부에서 operation.response.responseText를 사용하여 로직을 입력하여 서버에서 새 데이터를 가져옵니다.

0

저장소를 정상적으로로드하십시오. 그런 다음 날씨를 계산할 서버 메소드에 Ajax.request를 실행하거나 변경 사항이 없는지 확인하십시오. 서버 메소드에 변경이 있다고 표시되면 store load를 다시 호출하십시오.

이론적으로 웹 소켓은 서버에서 클라이언트를 업데이트하는 올바른 방법입니다.

관련 문제