Сообщение от 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;
}