Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задержка выполнения скрипта (https://javascript.ru/forum/misc/49839-zaderzhka-vypolneniya-skripta.html)

singmen 30.08.2014 20:13

Задержка выполнения скрипта
 
$(function(){
$('#my_form').on('submit', function(e){
e.preventDefault();
var $that = $(this),
formData = new FormData($that.get(0));
$.ajax({
url: $that.attr('action'),
type: $that.attr('method'),
contentType: false,
processData: false,
data: formData,
dataType: 'json',
success: function(json){
var messageResp = new Array('ок','не ок','длинно'); 
rel_q();$("#message").val("");$("#uploadImage").val("");
var resultStat = messageResp[Number(json)];
$("#resp").text(resultStat).show().delay(1500).fadeOut(800);
}
});
});
});

Есть код, вызывается кликом по клавише, но если кликнуть, допустим, 3 раза подряд, то 3 раза он и выполнится, как эту проблему исправить? скрипт добавления комментариев, так что тут проблема велика..

ixth 31.08.2014 04:48

Возможно, флажок in_progress сработает.

$(function(){
	var in_progress = false;
	$('#my_form').on('submit', function (e) {
		e.preventDefault();
		if (in_progress) {
			return;
		}
		in_progress = true;
		var formData = new FormData(this);
		var $that = $(this);
		$.ajax({
			url: $that.attr('action'),
			type: $that.attr('method'),
			contentType: false,
			processData: false,
			data: formData,
			dataType: 'json',
			success: function (json) {
				in_progress = false;
				var messageResp = ['ок','не ок','длинно']; 
				rel_q();
				$('#uploadImage, #message').val('');
				$('#resp').text(messageResp[json]).show().delay(1500).fadeOut(800);
			}
		});
	});
});


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