Как дождаться завершения AJAX?
RequestBlock = true; // в глобале разрешаем запрос

if (RequestBlock == false) {
	console.log('ничего не делаем');

} else if (RequestBlock == true) {
	RequestBlock = false; // блокируем следующий запрос пока не отработает $.ajax

	$.ajax({
		type: 'POST',
		url: 'URL',
		data: {},
		cache: false,
		dataType: 'JSON',
		timeout: 15000,
		success: function(r) {
			RequestBlock = true;
			console.log(r);
		},
		error: function(jqXHR, textStatus, errorThrown) {
			RequestBlock = true;
		}
	});
}
Я наверное не правильно понял. но всё же) Может добавить атрибут disabled к кнопке пока скрипт не выполнится?