Android 用の html アプリケーションを開発しており、リスト ビューで画像を読み込もうとしています。リスト アイテムに固有のデータは、複数の xml ファイルによって提供されています。私は ajax を使用して xml ファイルをロードし、リスト項目を設定しています。ここで直面している問題は、164 個のリスト アイテムがあることです。したがって、164 個の画像と 10 個の xml ファイルをロードする必要があります。私のローダー関数は、2回の反復後に使い果たされます。xml ファイルは読み取りますが、リスト アイテムを動的に作成し、2 回繰り返した後に画像を入力することはできません。スタックの制限によるものだと思います。別の解決策が思い浮かびません。誰かが非常に高く評価される代替ソリューションを提案できれば。以下は私のローダー機能です。これは再帰関数です。
function loadChannels() {
$.ajax({
type: "GET",
url: curURL,
dataType: "xml",
error: function(){ console.log('Error Loading Channel XML'); },
success: function(nXml) {
var noOfItems = parseInt($($(nXml).find('total_items')[0]).text(), 10);
var startIdx = parseInt($($(nXml).find('item_startidx')[0]).text(), 10);
var allItems = $(nXml).find('item');
$(allItems).each(function() {
var obj = $("<li><span id='cont-thumb'></span><span id='cont-name'></span></li>");
$("#content-scroller ul").append($(obj));
var imgURL = $($(this).find('item_image')[0]).text();
var contThumb = $(obj).children()[0];
$(contThumb).css("background-image", 'url('+imgURL+')');
var name = $($(this).find('name')[0]).text();
var contName = $(obj).children()[1];
$(contName).text(name).css('text-align', 'center');
var url = $($(this).find('link')[0]).text();
$(obj).data('item_link', url);
$(obj).bind('click', onJPContSelected);
});
if(startIdx+allItems.length < noOfItems){
var newIdx = new Number(startIdx+allItems.length);
var tokens = curURL.split("/");
tokens[tokens.length-2] = newIdx.toString(10);
curURL = "http:/";
for(var i=2; i<tokens.length; i++)
curURL = curURL + "/" + tokens[i];
loadChannels();
}
}
});
}