@arturka_v_10

Как сократить js код?

написал ajax запрос хочу узнать, как сократить отмеченное как (// сократить)

$('#Login').click(function(e) {
  
    e.preventDefault();
    var $data;
    $data = $('#mlog').serialize();
	
    $.ajax({
      url: "/ajax/manager.php?p=1",
      type: 'post',
      data: $data,
      success: function(result) {
	  
	  //$('#toast-container').attr('style', '');
	  
        $('#hum').html(result);
		$("#toast-container").removeClass("hidden_toast").addClass("visible_toast");
		
//  сократить или по другому написать
		setTimeout(function(){ 
        $("#toast-container").fadeOut(500);
		setTimeout(function(){
        $('#hum').html('');},4000);
		},3000);
//  сократить или по другому написать
		  
        //$("#toast-container").removeClass("visible_toast").addClass("hidden_toast");
        //setTimeout('location.replace("/test")',4500);
      }
    })
  });


И где можно подробнее узнать об оптимизации (кроме как с годами прогерства) ибо с js я начал работать лишь пару месяцев как
  • Вопрос задан
  • 345 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вместо
var $data;
    $data = $('#mlog').serialize();

можно же сразу
var $data = $('#mlog').serialize();
Более того, можно его перенести еще не несколько строк ниже, туда где data:

.removeClass("hidden_toast").addClass("visible_toast");
скорее всего это можно переписать так, чтобы добавлять/убирать один класс, но не трогать второй.
Из .toast_visible перенести всё в toast-container а .hidden убирать при необходимости.

Там, где два раза setTimeout можно воспользоваться .queue()

Получится примерно так:
$('#Login').click(function(e) {
    e.preventDefault();
    $.ajax({
      url: "/ajax/manager.php?p=1",
      type: 'post',
      data: $('#mlog').serialize(),
      success: function(result) {
        $('#hum').html(result);
        $("#toast-container")
            .removeClass("hidden")
            .delay(3000)
            .fadeOut(500, function(){ // on complete
                $("#hum").html('');
            });
        }
    });
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы