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);
					}
				});
			});
		});


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

Rise 24.02.2023 15:04

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

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

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

Rise 25.02.2023 01:03

BorisJe,
Так ошибка то какая в консоли что пишет?

BorisJe 25.02.2023 02:27

Цитата:

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

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


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