이것은 내 첫 번째 Windows 8 앱입니다.이 마지막 문제가 생기기 전에이 문제가 발생합니다. :)GridLayout ListView의 매우 느린 렌더링 - WinJS
레이아웃이있는 ListView가 GridLayout으로 설정되어 있습니다. 이 응용 프로그램은 메인 페이지가로드 될 때 ListView의 데이터 소스에 50 개의 항목을 추가합니다. ListView는 렌더링하는 데 5-6 초가 걸립니다.
NB : 항목이 dataSource에 추가 된 후 5-6 초. XHR/AJAX 콜 + 로딩은 200-300ms가 소요됩니다.
이것은 매우 이상하게 보입니다.
:_ref = data.products;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
product = _ref[_i];
_results.push(Category.categoryProducts.push(product));
}
HTML 데이터 소스에 항목 추가 - - ListView에와 데이터 소스
this.categoryProducts = new WinJS.Binding.List();
this.productListview = element.querySelector('#category-products-listview').winControl;
this.productListview.itemTemplate = element.querySelector('#product-template');
this.productListview.itemDataSource = this.categoryProducts.dataSource;
this.productListview.oniteminvoked = this._product_clicked.bind(this);
JS 정의
JS : 나는 다음과 같은 몇 가지 코드를 추가 한
<div id="product-template" data-win-control="WinJS.Binding.Template"> <div class="item product"> <img class="item-image" src="/images/shopping-bag.png" data-win-bind="src: thumbnail; alt: name" onError="this.src='/images/shopping-bag.png';" /> <div class="item-details" > <div class="item-details-top"> <h4 class="item-title" data-win-bind="textContent: name"></h4> </div> <div class="item-details-bottom"> <div class="price"> <span style="font-weight:bold;">$</span> <span data-win-bind="textContent: price"></span></div> <div class="reviews" ><span class="icon-comments"></span> <span data-win-bind="textContent: reviews_count"></span></div> <div class="stars" > <span class="icon-star"></span><span class="icon-star"></span><span class="icon-star"></span><span class="icon-star"></span><span class="icon-star"></span> <span data-win-bind="textContent: stars"></span></div> </div> </div> </div> </div>
이것은 ListView가 렌더링 될 때의 모습입니다.
어떤 아이디어들?
데이터 소스를 listview에 전달하기 전에 데이터 소스에 모든 항목을 추가하면 어떻게됩니까? 이상하게도 ... –