Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Супер Долгое выполнение скрипта (https://javascript.ru/forum/jquery/84966-super-dolgoe-vypolnenie-skripta.html)

BorisJe 23.02.2023 20:13

$(document).ready(() => {
			$('#quote_form').on('submit', function () {
				jQuery('#quote_form').addClass('form_sending');
				$.ajax({
					url: "/templates/easy_moving/sendmail.php",
					method: "POST",
					data: jQuery('#quote_form').serialize(),
					contentType: false,
					cache: false,
					processData: false,
					src: window.location.href,
					success: function (data) {
						console.log(data);
					}
				});
			});
		});


Ошибок нет, и не работает

BorisJe 23.02.2023 21:09

$('#quote_form').click(function(){
			$.post(
				'sendmail.php', // адрес обработчика
				 $("#quote_form").serialize(), // отправляемые данные  		
				
				function(msg) { // получен ответ сервера  
				}
			);
		});


Тоже не пошло

Белый шум 23.02.2023 22:01

BorisJe,
чем это отличается от изначального варианта?

BorisJe 23.02.2023 22:09

$.ajax({
            url: 'process.php', 
            type: 'POST',
            data: 'passVarOne='+userName+'&passVarTwo='+emailAddress,
            success:function(responseAnyNameHere) {
              $('.responseArea').html(responseAnyNameHere);
            },
            statusCode:{
              404:function(){
                //$('.error').html("Page not found!");
                alert( "file not found" );
              }
            }
          }).done(function() {
          alert( "success" );
          }).fail(function() {
          alert( "error" );
          }).always(function() {
          alert( "complete" );
        });


Вот еще нашел код. Идея такая выполнить, прыгнуть в always и сделать редирект. Работает еще до fail

Белый шум 23.02.2023 23:05

BorisJe,
Это не поможет. При редиректе произойдёт отключение от серверного скрипта и тот завершится, не успев ничего отправить.

Если не можете решить проблему на стороне сервера, то замените крутилку на прогресс-бар, рассчитанный на 15 секунд, плюс текст с извинениями и просьбой подождать это время. В идеале - ещё занять/развлечь чем-нибудь на это время: текстом, картинкой, и т.д.

BorisJe 24.02.2023 14:49

Цитата:

Сообщение от Белый шум (Сообщение 550869)
BorisJe,
Это не поможет. При редиректе произойдёт отключение от серверного скрипта и тот завершится, не успев ничего отправить.

Если не можете решить проблему на стороне сервера, то замените крутилку на прогресс-бар, рассчитанный на 15 секунд, плюс текст с извинениями и просьбой подождать это время. В идеале - ещё занять/развлечь чем-нибудь на это время: текстом, картинкой, и т.д.

Тогда Мне кажется с первоначальным скриптом что то не так, он даже выключенной отправкой работает долго. Там используется Jquery 1.12.Х

На 3.6 Делается по другому, но и быстрее работает.

что сделал

$(document).ready(() => {
			$('#quote_form').on('submit', function () {
				jQuery('#quote_form').addClass('form_sending');
				$.ajax({
					url: "/templates/easy_moving/sendmail.php",
					method: "POST",
					data: jQuery('#quote_form').serialize(),
					contentType: false,
					cache: false,
					processData: false,
					src: window.location.href,
					success: function (data) {
						console.log(data);
					}
				});
			});
		});


На отправку не идет. почемуто

BorisJe 24.02.2023 18:13

Цитата:

Сообщение от Rise (Сообщение 550875)
BorisJe,
Что вы делаете? Почитайте документацию $.ajax(), cache работает только с GET и HEAD, а src там нет.

Как вы работоспособность проверяете? Откройте консоль (F12), посмотрите ошибки.

$(document).ready(() => {
		$(function() {
			$('quote_form').submit(function(e) {
			  $.ajax({
				url: '/templates/easy_moving/sendmail.php',
				data: $("#quote_form").serialize(),
			  }).done(function() {
				console.log('success');
			  }).fail(function() {
				console.log('fail');
			  });
			  //отмена действия по умолчанию для кнопки submit
			  e.preventDefault(); 
			});
		  });
		});


Захожу во все кроме Done

BorisJe 25.02.2023 02:27

Цитата:

Сообщение от Rise (Сообщение 550884)
BorisJe,
Так ошибка то какая в консоли что пишет?

аллерты Мои выскакивают, ошибок нет

BorisJe 25.02.2023 16:02

Цитата:

Сообщение от Rise (Сообщение 550892)
BorisJe,
А так?
.fail(function(jqXHR, textStatus, errorThrown) {
    console.log('fail: ', textStatus, errorThrown);
})

fail:  error Internal Server Error

BorisJe 25.02.2023 16:14

$(document).ready(() => {
    $(function() {
        $('#quote_form').submit(function(e) {
    $.ajax({
        url: 'sendmail.php', 
        type: 'POST',
        data: $("#quote_form").serialize(),
        success:function(responseAnyNameHere) {
          $('.responseArea').html(responseAnyNameHere);
        },
        statusCode:{
          404:function(){
            //$('.error').html("Page not found!");
            alert( "file not found" );
          }
        }
      }).done(function() {
      alert( "success" )
      }).fail(function(jqXHR, textStatus, errorThrown) {
console.log('fail: ', textStatus, errorThrown);
})
.always(function() {
      alert( "complete" );
    });
          //отмена действия по умолчанию для кнопки submit
          e.preventDefault(); 
        });
      });
    });


Ошибок нет, везде успех но и не отправилось. Но отработало быстро


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