jQuery по умолчанию не является многопоточным, но я написал плагины, которые предоставляют функциональность, которая имитирует его. Код состоит из двух частей. Первый создает «Рабочие очереди» и предоставляет функциональные возможности как для переднего плана, так и для фоновой очереди, где приоритетная работа имеет приоритет над фоновой работой. Это доступно в этом посте: http://code.ghostdev.com/posts/javascript-threading-revisted-jquery. Второй создает очередь AJAX, которая имеет приоритет над приоритетными и фоновыми очередями и приостанавливает работу во время обработки вызова AJAX. Это доступно в этом посте: http://code.ghostdev.com/posts/javascript-threading-ajax-queueing.
Для их использования, безусловно, потребуется, по крайней мере, некоторая реструктуризация вашего кода, но я реализовал их, чтобы избежать тайм-аутов браузера и планировать события.
Извините, я могу попытаться привести пример. Предполагая, что вы включили эти фрагменты и теперь у вас есть рабочие очереди, что-то вроде этого, вероятно, подходит к вашему примеру кода:
$.addajaxwork('imageLoading', $('.item'), function () {
var item_link = $(this).find("a").attr("href");
$(this).prepend('<div class="img_url"></div>');
var img_url = $('div.img_url', this);
$.get(item_link, function(data) {
var src = $('.poster img', data).attr('src');
img_url.html(src);
});
});