【发布时间】:2014-02-11 18:21:11
【问题描述】:
我正在使用带有 jQuery 移动的列表视图。列表视图是动态加载的(Ajax 函数会调用自身,直到所有内容都加载完毕或用户单击停止)。对于每个 Ajax 调用,添加 100 个项目。
我拥有的项目越多,添加新项目所需的时间就越多(这不是来自服务器)。罪魁祸首似乎是这条指令:
$("#ListDspQry").listview("refresh");
如果我删除它一切都很好。
我猜该指令处理列表视图的每个项目,但我只需要刷新新项目。那么是否可以只刷新最后 100 个项目?
代码如下:
//....
for (var i = this.nbDisplayed; i < this.nbRecords; i++) {
addItem(this, i);
}
$("#ListDspQry").listview("refresh");
//....
function addItem(oSvdQuery, index) {
var oLi = document.createElement('li');
var oAnchor = document.createElement('a');
var link = "javascript:showDetails(' + (index) + ')";
oAnchor.setAttribute('href',link);
var html='';
var oRecord = [];
for (i = 0; i < oSvdQuery.fields.length; i++) {
oField = oSvdQuery.fields[i];
oRecord = oSvdQuery.allValues[index];
html = html + oField.name + ' : ' + oRecord[oField.name] + '<br>';
}
oAnchor.innerHTML = html;
var listDspQry = document.getElementById('ListDspQry');
listDspQry.appendChild(oLi);
oLi.appendChild(oAnchor);
oSvdQuery.nbDisplayed++;
}
【问题讨论】: