그리드에 표시 할 단일 Silverlight 앱이 있습니다. Silverlight 응용 프로그램의 내용 표시 방식은 각 표 행의 레코드의 고유 ID에 따라 다릅니다. 안타깝게도 XAP 파일은 그리드의 각 행마다 다시 다운로드됩니다. 크기가 700KB이면 성능에 큰 영향을줍니다. XAP 파일을 한 번 다운로드 한 다음 그리드의 각 행에 다시 사용할 수 있습니까?내 페이지의 다른 영역에서 Silverlight 응용 프로그램을 다시 사용할 수 있습니까?
답변
XAP을 다운로드하면 Silverlight는 Silverlight 컨트롤의 인스턴스 당 로컬로 어셈블리 등을 캐시합니다. Silverlight 컨트롤의 다른 인스턴스를 만든다면 차례로 자신의 도메인을 갖게됩니다.
제 생각에는 당신이 요구하는 부분을 추출하여 별도의 xaml로 구워서 가장 필요한 부분에로드하십시오. 여전히 Silverlight 3에서 마샬링/이벤트 관리 등을 처리하기 위해 중앙 .xap가 필요한 경우 다른 Silverlight 인스턴스가 하나의 브라우저 페이지 내에서 로컬로 상호 작용할 수있게하는 로컬 연결 API를 배치했습니다 (예 : SilverlighA는 SilverlightB와 index.html 내의 모든 것)
그러면 로컬 프록시를 설정할 수 있습니다.
Scott Barnes/Rich Platforms 제품 관리자/Microsoft.
설명 주셔서 감사합니다! –
확실하지 않습니다. 이론적으로는 캐싱되어야하지만,이 경우 이론은 쪼그리고 앉을 가치가없는 것처럼 보입니다.
오브젝트> 태그가 다양한 매개 변수로 작동하는 방식에 이르기까지 모두 내려 가고 있으며, 이는 실버 라이트의 "드문 드문"문서화 된 영역 중 하나입니다.
할 수는 있지만 그렇게하기는 쉽지 않습니다. 캐시 된 xap을 참조 할 때마다 xap을 다운로드하여 IsolatedStorage에 저장하고 실버 라이트 호스트를 만들 수 있지만 1MB의 공간 만 사용할 수 있으며 동일한 도메인의 다른 실버 라이트 앱이있는 경우 보장 할 수 없습니다.
당신이 묘사 한 것을 감안할 때, 나는 아직도하고 싶은 일을하는 데 어떤 가치도 보이지 않습니다. 나는 당신이 그것을 거꾸로 가지고 있다고 생각합니다.
타사 그리드 컨트롤 내부에 SL 데이터 시각화 컨트롤을 추가하고 있습니다. SL GridView는 단순히 성숙도가 낮아서 내가 사용하고있는 HTML 컨트롤의 모든 기능을 가지고 있지 않습니다. 시간이 지남에 따라 이것이 변할 것이라고 확신합니다. 귀하의 제안이 실제로 더 의미가 있습니다. –
또한 주요 XAP을 다시 한 번 살펴보십시오. 왜 700MB입니까? 이미지를 제외 할 수 있습니까? 여분의 어셈블리 등, 당신이 사용하는이 그리드에 필요하지 않습니다. 그런 식으로 여러 번 재사용해야한다면 더 빠르고 쉽게 저장할 수 있습니다. –
일부 코드를 알려주세요. – chakrit
흠 .. 재미있는 구현. 왜 내부에 그리드가있는 하나의 SL 앱 대신에 그렇게 할 수 있을까요? –