2011-04-23 2 views
2

저는 통신을 위해 수명주기 데이터 서비스를 사용했기 때문에 java로 Flex 어플리케이션을 작업했습니다. wana가 알고 있듯이, Flex의 모든 기능이로드를 볼 수있는 곳입니다. 상태 백분율, 얼마나 많은 레코드가로드되고 있는지.Flex 4 로더가 데이터 서비스 상태를 가지고 있습니다.

문제가 있다면, 오랜 시간이 걸리면 시체는 알지 못합니다. 콤보 박스 나 그리드와 같이 소프트웨어로 무슨 일이 일어나고 있는지, 사용자는 일반적으로 그것을 응용 프로그램에서 BUG라고 생각하지만 당연히 그렇지 않습니다.

JAVA (SQL Server)에서 모든 데이터를 수신 할 때까지 적절한 상태로 백분율로로드되는 그래픽 로더가 필요합니다.

종류는 많은 바이트를 통해 오는 정확히 알고 있기 때문에 당신이 당신의 자신의 소켓 프로토콜을 구현하는 경우 ATIF

+0

+1. SWFLoaders 또는 VideoDisplay를 사용하면 bytesLoaded 및 bytesTotal을 가져 와서 비교할 수 있음을 이해합니다. 그러나 RemoteObject/WebService/HTTPService 호출을 사용하면 호출이 완료 될 때까지 bytesTotal을 알 수있는 방법이 없다고 생각합니다. – JeffryHouser

답변

0

백분율 로딩이 가능 간주,하지만 당신을 위해 잔인한 것입니다. 가장 좋은 방법은 모든 데이터가 도착할 때까지 팝업되는 적재 표시기가있는 적절한 UX를 만드는 것입니다.

0

SQL-Assembler를 사용한다고 가정하겠습니다.

개선하기 위해 할 수있는 몇 가지 방법이 있습니다. 첫 번째는 SQL-Assembler의 페이징 기능을 사용하는 것입니다. (LCDS Developer guide - Data paging) 적어도 구성 파일에서 지정한 페이지의 처음 #을 더 빨리 반환합니다. 또한 액션 스크립트에서이를 수행하지 않고 다른 결과를 반환하기 위해 다른 채우기 함수를 호출하도록 콜렉션 필터링을 변경해야합니다. LCDS sql-assembler가 페이징과 함께 작동하는 방식은 컬렉션의 마지막 요소에 개체 대신 null을 남겨 두는 것입니다. 액션 스크립트에서 참조되면 LCDS는 다음 페이지의 데이터 양을 알아냅니다.

(LCDS 2.6 현재) SQL 어셈블러에 부족한 한 가지 방법은 count를 사용하여 select 문을 호출하여 fill 함수 호출에서 반환 할 결과의 수를 표시하는 것입니다.

원격 개체를 사용하여 EJB 3을 호출하여 카운트 쿼리를 호출하여이 문제를 해결했습니다. 그런 다음 큰 쿼리 결과에 대해 내 데이터 표 위에 (원격 카운트) 번호의 (Collection의 총 길이)를 표시합니다.