У меня есть страница, использующая jQuery для загрузки XML файла, который затем выводит содержимое страницы.
Недавно я добавил функцию сортировки для вывода, которая вызывает 1+ или 2+ минуты в Safari на iPod Touch (в зависимости от того, сколько полей я сортирую) и менее 1 минуты висит на iPad. Тот же вид возвращается в течение нескольких секунд в Firefox 4.0.1.
Я боюсь, что это просто ограничение iOS, но до того, как я удалил сортировку, возможно, была сделана оптимизация.
Перед фильтром есть 357 элементов в XML. После фильтра есть 199 элементов, отсортированных через.
var videoGames = $($.parseXML(videoGameXml)).find("game");
videoGames = videoGames.filter(function (a) {
return ($(this).attr('addOn') != "true" && $(this).find('own').text() == "yes");
});
videoGames.sort(function (a, b) {
var firstTitle = $(a).find('title').text().toLowerCase();
var secondTitle = $(b).find('title').text().toLowerCase();
var firstSystem = ($(a).find("console").text() + " " + $(a).find("version").text()).toLowerCase();
var secondSystem = ($(b).find("console").text() + " " + $(b).find("version").text()).toLowerCase();
if (firstSystem != secondSystem) {
if (firstSystem > secondSystem) {
return 1;
} else {
return -1;
}
} else {
if (firstTitle > secondTitle) {
return 1;
} else if (secondTitle < firstTitle) {
return -1;
}
}
return 0;
});
videoGames.each(function () {
// runs quickly, so removed
});
Обратите внимание, что если я удалю проверку системы как начальную "оптимизацию", которая сокращает время примерно на половину iPod Touch, но все равно приводит к упоминанию выше 1 + минута.
Итак, это ограничение на iOS-устройство или я могу оптимизировать свой вид?