Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   По клику на кнопке обратиться по нескольким адресам к сайту, потом обновить страницу (https://javascript.ru/forum/events/8115-po-kliku-na-knopke-obratitsya-po-neskolkim-adresam-k-sajjtu-potom-obnovit-stranicu.html)

andigo 08.03.2010 23:37

По клику на кнопке обратиться по нескольким адресам к сайту, потом обновить страницу
 
Сервис интернет-магазина. Позволяет добавлять к себе на сайт виджеты товаров. Нужно сделать кнопку, при нажатии на которую автоматом бы чистилась корзина и добавлялись в нее все товары магазина.

Позволяет все это делать, если обращаться к сервису по определенному адресу:
1. Чтобы очистить корзину - сайт.ru/shop/cart/?widgets=1&view=noframe&external=1&clear_cart=yes
2. Чтобы добавить конкретный товар - сайт.ru/shop/cart/?action=add_product&productID=26182&widgets=1

Пробовал конструкции типа:
window.shop.location = 'http://сайт.ru/shop/cart/?widgets=1&view=noframe&external=1&clear_cart=yes';

window.shop.location = 'http://сайт.ruсайт.ru/shop/cart/?action=add_product&productID=26182&widgets=1';


Ставлю их просто по очереди в функции.

Очистить корзину или добавить одну позицию товара во айфрейме "shop" в итоге получается. Как только пытаешься сделать все вместе, начинают выскакивать какие-то глюки. Корзина чиститься, 2-3 товара добавляются и все.

В чем может быть проблема? Или может быть есть какие-то ограничения по кол-ву обращений к страницам за раз?

Octane 09.03.2010 01:20

new Image().src = "адрес";

andigo 09.03.2010 01:49

Хм. На 30-ти тестовых товарах работает. Как заведем остальные товары, попробую сразу все товары так же добавить.

Если и тогда заработает, то заранее огромное спасибо. Не догадался бы таким образом к адресам обращаться. А я уж в сторону XMLHttpRequest начал копать:0)

Может кто еще подскажет, что надо добавить в функцию, чтобы запросы отправлялись строго поочередности?

Сейчас все запросы на добавление отправляются практически одновременно, а сервер сервиса отвечает на них с разной скоростью. Из-за этого сбивается очередность товаров в корзине.

Такая конструкция вообще будет правильной?

function AddAllBook() {
		new Image().src = 'http://www.123.net/shop/cart/?action=add_product&productID=26182&widgets=1';
		setTimeout(function() { new Image().src = 'http://www.123.net/shop/cart/?action=add_product&productID=26183&widgets=1'}, 2000);
		setTimeout(function() { new Image().src = 'http://www.123.net/shop/cart/?action=add_product&productID=26184&widgets=1'}, 2000);
		setTimeout(function() { alert('Книги добавлены в корзину') }, 1000);
	}


Она у меня физически работает, товары нормально добавляются. Вот только судя по секундомеру задержки не срабатывают, ну и очередность товаров соотвественно тоже не соблюдается.


Часовой пояс GMT +3, время: 04:31.