Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Остановить выполнение Ajax запросов в цикле
Форумы портала PHP.SU » » Вопросы новичков » Остановить выполнение Ajax запросов в цикле

Страниц (1): [1]
 

1. ivt32 - 29 Октября, 2017 - 19:27:52 - перейти к сообщению
Добрый день. Такая ситуация: делаю свой импорт товаров в Битрикс из CSV файла. Товаров огромное количество, при нажатии на кнопку импорт у меня запускается процесс импорта. Скрипт считывает поочереди каждую строку файла и отсылает Ajax запрос на страницу со скриптом добавления файла. Возможно пользователь захочет остановить процесс импорта, как мне выйти из цикла и остановить процесс по нажатию на какую-нибудь кнопку?

<?foreach ($list as $string) {?>
<script>
addproduct(); // В этой функции Ajax запрос
</script>
<?}?>
2. Sail - 29 Октября, 2017 - 19:37:32 - перейти к сообщению
ivt32 пишет:
выйти из цикла и остановить процесс по нажатию на какую-нибудь кнопку?

Добавьте в функцию, выполняющую ajax запрос проверку "какого-либо" параметра.
А по нажатию на эту "какую-нибудь" кнопку изменяйте этот параметр. Будь то data-атрибут, наличие/отсутствие класса, содержимое специально выделенной для этого дела переменной и прочая, прочая, прочая...
3. ivt32 - 29 Октября, 2017 - 19:49:25 - перейти к сообщению
Sail пишет:
ivt32 пишет:
выйти из цикла и остановить процесс по нажатию на какую-нибудь кнопку?

Добавьте в функцию, выполняющую ajax запрос проверку "какого-либо" параметра.
А по нажатию на эту "какую-нибудь" кнопку изменяйте этот параметр. Будь то data-атрибут, наличие/отсутствие класса, содержимое специально выделенной для этого дела переменной и прочая, прочая, прочая...


Тут такое дело что сам по себе Ajax запрос маленький. Все-го лишь добавление товара.
Но вот допустим сейчас у меня их в цикле вызывается 6000, мне нужно как-то выйти из этого цикла по нажатию на кнопку. Т.е.
<?foreach ($list as $string) {?>
<script>
addproduct(); // В этой функции Ajax запрос
</script>

if ($parametr) {
break;
}
<?}?>

Я же ведь не могу просто так и присвоить что-то переменной $parametr динамически, мне нужно дождаться выполнения всего цикла? Или я ошибаюсь?
4. Sail - 29 Октября, 2017 - 21:29:59 - перейти к сообщению
ivt32, кстати, да... приведённый код - процесс формирования страницы на сервере. До пользователя (браузера) тут дело доходит только после того, как весь цикл отработает. Так что "в процессе" пользователь повлиять при данном подходе к процесса формирования страницы не может.
И на странице в данном случае получаете 6000 строк <script>addproduct();</script>
Непорядок, однако.
Или фишка в том, что это Битрикс и все не так, как выглядит?
5. zypikov - 30 Октября, 2017 - 14:43:48 - перейти к сообщению
Интересно, этот самый параметр может ли прийти из другого ajax-запроса? Видимо от архитектуры кмски зависит..

 

Powered by ExBB FM 1.0 RC1