Показать сообщение отдельно
  #14 (permalink)  
Старый 21.10.2017, 14:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от EvgenStor
Получается то наоборот, что вы мне туманите мозги.
Просишь помочь скрипт написать по исходным данным, а в ответ получаешь кучу советов . Если бы это можно было без скрипта сделать, я бы тут не задавал вопросы.
Читать содержимое корзины на клиенте и после этого долбить этот же сервер новыми запросами, чтобы отобразить изображения этих товаров - не есть хорошо.
Именно поэтому вам и начали мозг совокуплять. Правильнее реализовать так, чтобы сервер сразу возвращал все необходимые данные.

Раз уж реализовать этот правильно нельзя, то нужно хотя бы нагрузку на сервер уменьшить.
Попробуйте этот код:
$('#order-table > div').each(function(){
	var $this=$(this),
		$img=$this.find('>div:eq(1) img[src=""]'),
		$link=null,
		src=null;
	
	if(!$img.length)
		return;
	
	$link=$this.find('>div:eq(2) a');
	
	if(!!src=storage_get_img_src($link.attr('href')))
		return $img.attr('src',src);
	
	(function($img,$link){
		$.get($link.attr('href'),function(html){
			var src=$(html).find('img[alt="'+$link.text()+'"].link-photo');
			if(!src.length)
				throw new Error('Image not found');
				
			storage_set_img_src($link.attr('href'),src);
			$img.attr('src',src);
		});
	})($img,$link);
});

function storage_get_img_src(url){
	if(!window.localStorage)
		return null;
		
	return localStorage.getItem(url);
}
function storage_set_img_src(url,src){
	if(!window.localStorage)
		return false;
	
	localStorage.setItem(url,src);
	
	return true;
}
Ответить с цитированием