Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2016, 20:08
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Как остановить рекурсивную функцию по клику?
Приветствую!

Подскажите, пожалуйста. Как можно остановить рекурсивную функцию по клику?

$(document).ready(function($) {

	$("#sent").click(sent_get);
	$("#stop").click( /*тут нужно вызвать функции которая должна остановить sent_get () */ );

	function sent_get () {

			$('result-box').prepend('<div class="result"></div>');

			$.ajax({
			  url: 'go1.php',
			  beforeSend: function () {
			  	var el_count;
			  	el_count = $('.result').length;

			  	if(el_count>5){
			  		$('.result').remove();
			  		el_count = 0;
			  	}

			  	$('.result-box').prepend('<div class="uk-panel uk-panel-box result"></div>');
			  	$('.result').append('<i class="uk-icon-spinner uk-icon-spin"></i>')
			  	 
			  },
			  success: function(data){
			    $('.uk-icon-spin').remove();
			    $('.result').addClass('success');
			    $('div.result:first').append(data);
			    sent_get ();
			  }	
			});
	}

});


Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2016, 20:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Lutidza,
var amba = false ;
	$("#sent").click(function() {  amba = false ;
 sent_get()
});
	$("#stop").click( function() { amba = true} );

	function sent_get () {
            if(amba) return;
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2016, 11:09
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Большое спасибо!

Дабы не плодить тем. Подскажите, пожалуйста, как можно запустить данный скрипт многопоточно?

В идеале иметь ещё возможность управлять количеством потоков.
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2016, 11:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Lutidza
Подскажите, пожалуйста, как можно запустить данный скрипт многопоточно?
не в теме, ждите гуру
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2016, 12:21
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Тогда такой ещё вопрос:

$.ajax({
			  url: 'go2.php',
			  beforeSend: function () {
			  	var el_count;
			  	el_count = $('.result').length;

			  	//Удаляю блокие когда из становится больше 5
			  	if(el_count>5){
			  		$('.result').remove();
			  		el_count = 0;
			  	}

			  	$('.result-box').prepend('<div class="uk-panel uk-panel-box result"></div>');
			  	$('.result').addClass('result'+el_count);

			  	$('.result'+el_count).append('<i class="uk-icon-spinner uk-icon-spin"></i>')
			  	 
			  },
			  success: function(data){
			    $('.result'+el_count).children('i').remove();
			    $('.result'+el_count).addClass('success');
			    $('.result'+el_count).append(data);
			    //sent_get ();
			  }
				
			});


Как мне из этой функции "beforeSend: function () {...", предать значение переменной в el_count в эту "success: function(data){..."
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2016, 12:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Lutidza,
строку 4 перенести в строку 0
Ответить с цитированием
  #7 (permalink)  
Старый 23.01.2016, 12:32
Аватар для Lutidza
Интересующийся
Отправить личное сообщение для Lutidza Посмотреть профиль Найти все сообщения от Lutidza
 
Регистрация: 06.11.2012
Сообщений: 17

Спасибо
Ответить с цитированием
  #8 (permalink)  
Старый 23.01.2016, 16:41
Интересующийся
Посмотреть профиль Найти все сообщения от newuserjs2016
 
Регистрация: 22.01.2016
Сообщений: 18

Сообщение от Lutidza
как можно запустить данный скрипт многопоточно?
Смотрите в сторону web-workers. Если не нужна "реальная" многопоточность, можете использовать генераторы+промисы

Последний раз редактировалось newuserjs2016, 23.01.2016 в 16:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как назвать функцию? mrtarantul Оффтопик 12 10.08.2013 16:26
Подскажите как вызвать функцию jQuery по клику checkbox shurek Общие вопросы Javascript 4 26.07.2013 15:27
Как через динамическую втавку в страницу автоматически вызвать функцию javascript? Roberts AJAX и COMET 2 19.03.2013 12:32
как реализовать свою функцию к переменной czp Общие вопросы Javascript 2 01.01.2012 19:52
как остановить функцию Александр х@к Элементы интерфейса 8 11.09.2011 18:22