Я думаю, что большую часть времени тратится на выполнение LINQ-запроса.Я бы посоветовал вам запустить код через профилировщик javascript, например Profiles
в Google Chrome, чтобы найти громоздкие операции.
Кроме того, === иногда может быть быстрее, чем ==, поскольку первый не выполняет преобразование типов, что может оказаться полезным при обходе больших коллекций.Кроме того, используя профилировщик, посмотрите, есть ли какие-либо преимущества при использовании необработанного кода javascript для выполнения операций:
var result = [];
for (var d in data) { // or regular for (var i = 0; ...
if (d.regio === "Afrika") {
result.push(d); // or result[result.length] = d;
}
}
result.sort(function(a, b) {
// sort a.name and b.name
});
Я понимаю, что это минимальное использование ядра jQuery, но это средство для вас, чтобыхотя бы изучите издержки (или оптимизацию), которые предлагает библиотека.
Также попробуйте использовать обычную конкатенацию строк (или объединение массивов в зависимости от того, что лучше для вас работает) через полноценный шаблонизатор.