我有静态图像500x640坐在文件夹由20x20件与CSS精灵捕捉,我设置背景位置来显示每一块,我需要这样的显示,以便能够与每件后操纵。CSS Sprites性能
CSS:
.piece
{
width: 20px;
height: 20px;
display: inline-block;
//display: inline;
//zoom:1;
}
.ob { background-image: url("/Images/ob.jpg");}
JS:
<script id="flipTemplate" type="text/html">
<div class="piece ob" data-bind="style: { backgroundPosition: viewModel.getLeftValue($index) + ' ' + viewModel.getTopValue($index) }, attr: {cond: Cond, id: Id }, click: viewModel.setClick ">
</div>
</script>
<script type="text/javascript">
viewModel = {
flips: ko.observableArray([]),
setClick: function (data, e) {
e.preventDefault();
//doing click
},
getLeftValue: function (index) {
var position = 0;
var currentLine = div(index(), 25);
if (currentLine > 0)
return '-' + (index() - (currentLine * 25)) * 20 + 'px';
else
return '-' + index() * 20 + 'px';
},
getTopValue: function (index) {
return '-' + (div(index(), 25)) * 20 + 'px';
}
};
ko.applyBindings(viewModel);
</script>
function div(val, by){
return (val - val % by)/by;
}
所以我有一些性能问题。 例如在Opera和FF图像加载非常迅速地约1秒,在IE约3秒,但在铬它加载很慢
它正在约17秒,以显示在浏览器的所有块...
浏览器只做一个请求来获取图像,而不是从中切出小块,为什么Chrome可能需要这么长时间?
有没有什么办法可以提高性能?
只是做了CTRL +刷新这里奇怪的装载结果:
更新: 我只是放在这里的样本:http://bit.ly/TrcCdp
UPDATE: 在我的样本有JSON数组,它包含800个元素,所以我只是发现是否让它变得更少,例如600-700个元素的性能会越来越好,但无论如何我需要800个元素。
e.g当只有600元是减少在Chrome负荷约6秒....
所以大概可能在某个地方敲除迭代模板点问题呢?
对不起,图片有点小。你的精灵有多大? – canon
这是可重复的吗? – SLaks
@canon如果您右键单击图片并按下打开,它将以实际大小打开(http://i.stack.imgur.com/WGdAr.jpg)。我的精灵是83.78kb。 – Kuncevic