我正在使用 PhoneGap 和 JQuery Mobile 创建一个应用程序,我希望在其中从某些后端服务读取数据并根据收到的内容添加/删除列表项(也可能是 div)。自然地,我想防止应用程序在长时间使用时速度过慢。
在添加/删除 HTML 时是否有任何一般的最佳实践?我对此很陌生,所以我不太了解 DOM 是如何工作的等等。
目前我正在使用 JQuery 的 append 将 HTML 行添加到某些容器 div,并使用 .html("") 删除元素。这是可以接受的,还是有更好的方法来做到这一点?
编辑:供您参考,我使用的是 JQuery Mobile 1.1.0 和 Phonegap 1.9.0。不知道这是否有帮助,但你去。
我希望在尽可能多的移动设备上使用这个应用程序,但我猜 iOS 和 Android 是目前最大的市场。
澄清一下,我实际上还没有遇到重大问题(还),我只是想避免以后遇到任何事情,并且必须通过大量代码来尝试解决问题。我认为如果我们能就一组最佳实践达成一致,这对每个人都会很有用,即在 .append 上使用 innerHTML()、remove vs innerHTML("") 等等:P
一些示例代码:
function changeList(sel){
var xmlfolder="/"
var name = sel[sel.selectedIndex].value+".xml";
var location= xmlfolder+name;
var list = document.getElementById("opList"); //opList is the container
list.innerHTML=""; //what i'm using to remove the previous occupant
//: is there a better way of doing this?
//reading stuff
$.ajax({
type:'GET',
cache: false,
url: location,
dataType:"xml",
success: function(data){
xmlInfo=data;
var i=0;
$(data).find("data").each(function(){
var string = "";
var sName=$(this).find("name").text();
string +=("<li>");
string +=("<a href=#details data-transition = slide >");
string+= sName;
string+="</a></li>";
$('#opList').append(string); //is there a better way of appending?
i++;
})
$('#opList').listview('refresh');
},
error:function(e){
alert("failed D:");
console.log(e);
}
});
}