Как я могу избежать “мигающего” отделения прогресса на быстром результате с jQuery ajax?

Если вы используете функции стрелок ES6 с методами Vue, это меняет контекст this. Если вы сформулируете это как:

Vue.mixin({
  methods: {
    functionOne () {
      console.log(1)
    },
    functionTwo: function () {
      this.functionOne()
    }
  },
  mounted () {
    this.functionTwo()
  }
})

, это работает отлично.

(синтаксис functionOne () и functionTwo: function () оба действительны, поэтому они оба появляются в примере.)

7
задан Community 23 May 2017 в 12:19
поделиться

2 ответа

Попробуйте следующее:

$("#spinner")
    .bind("ajaxSend", function() {
            $(this).fadeIn(1000);
    })
    .bind("ajaxComplete", function(){
        $(this).stop();
        $(this).hide();
    });

Идея состоит в том, что Вы постепенно появляетесь счетчик с задержкой (в этом случае 1000) и отменяете анимацию и скрываетесь на ajaxComplete.

Если Вы хотите сделать отложенное шоу, Вы могли бы экспериментировать с использованием анимационного (), а не исчезнуть () и объединение в цепочку вызовов (например, $ (этот) .animate (/* что-то здесь */). покажите ()),

Надеюсь, это поможет!

2
ответ дан 7 December 2019 в 14:39
поделиться

Хорошо на ранних стадиях проекта, который использует Ajax с индикаторами хода выполнения, конечно, Вы будете иметь мигающий эффект, потому что Вы (надо надеяться), не работаете с огромным объемом данных, поскольку Вы тестируете. Вы найдете, поскольку Ваш проект получает все больше данных, индикатор хода выполнения останется дольше и останется дольше. Я не рекомендую намеренно создать задержку для хранения индикатора хода выполнения там, потому что он умалит пользовательский опыт. Попытайтесь играть вокруг с javascript setTimeout () функция.

2
ответ дан 7 December 2019 в 14:39
поделиться
Другие вопросы по тегам:

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