這是我想要做的背景。angularjs和JSON數據加載緩慢 - 尋找更好的性能
我有一個我想要在JSON文件中管理的約70種產品的列表。該文件由圖像數據,標題,副標題和簡短說明組成。稍後還會有一個PDF文件的鏈接,所以它也會包含在JSON文件中。
這就是JSON文件看起來像現在:
[
{
"category": "oil",
"image": "/xps-product-list/img/2-STROKE_MINERAL_OIL_GROUP.jpg",
"title": "Maintenance and Oil Change Kit Spyder",
"subTitle": "Engine Oils",
"description": "Complete maintenance right out of the box: O-Ring, XPS oil, Rotax oil filter and instruction sheet"
},
{
"category": "fuel",
"image": "/xps-product-list/img/2-STROKE_PREMIX_OIL.jpg",
"title": "XPS Premix Oil",
"subTitle": "Engine Oils",
"description": "Superior performance 2-stroke oil developed especially for Rotax 2-stroke engines. Formulated for fast and easy mixing at very cold temperatures. Please contact your nearest dealer for suggested retail prices of oil based products."
}
]
我使用AngularJS在JSON數據帶來和使用NG-重複指令,通過數據進行迭代並顯示:
function AlbumCtrl($scope, $http, $timeout) {
$scope.url = 'images.json';
$scope.handleImagesLoaded = function (data, status) {
$scope.images = data;
$scope.currentImage = _.first($scope.images);
}
$scope.fetch = function() {
$http.get($scope.url).success($scope.handleImagesLoaded);
}
$scope.setCurrentImage = function (image) {
$scope.currentImage = image;
}
$timeout ($scope.fetch, 1000);
}
然後,這是與NG-重複的HTML:我覺得應該
<div id="image-container" ng-controller="AlbumCtrl">
<div id="header">
<div class="product-info">
<ul>
<li ng-repeat="image in images | filter:categories">
<img ng-src="{{image.image}}" id="small-prod-img"/>
<h2>{{image.title}}</h2>
<h3>{{image.subTitle}}</h3>
<h4>{{image.description}}</h4>
</li>
</ul>
</div>
</div>
</div>
做一個更乾淨的方法來做到這一點。我遇到的這個問題是圖片需要很長時間才能加載。我一直在使用Firebug開發工具(網絡選項卡)來查看數據加載的速度。在加載數據和加載圖像之間存在一致的滯後,通常大約爲半秒左右。
我在想我應該創建兩個角部分,一個用於圖像,然後一個用於數據(標題,副標題,描述),從而分離出圖像並希望使加載時間更快。或者只是將圖像編碼到HTML中,然後對其餘的數據進行部分處理。此外,這是我第一次將圖像數據存儲在JSON文件中,因此我不確定首先是否是一個好主意。我找不到任何有關JSON中圖像數據的建議。
任何建議將不勝感激。
皮特
編輯:忘記提到這將是一個頁面,所有裝在同一頁上的產品。我還打算使用該類別並創建一個下拉頁面,以便用戶可以按類別進行過濾
編輯#2 - 這裏是來自firefox dev工具的網絡選項卡的圖像,您可以清楚地看到滯後在加載圖像:
這些圖像有多大? – prawn 2014-11-06 16:38:17
試圖找到一種方式來加載圖像,只有當它們在屏幕上可見時纔會加載,因此當用戶將在屏幕上時,它們會逐個加載它們 – Charlie 2014-11-06 16:40:06
@prawn圖像實際上非常小 - 僅約30-50Kb – Dade 2014-11-06 16:53:18