#javascript #jquery #settimeout
#javascript #jquery #settimeout
Вопрос:
Как я могу «убить» эту функцию setTimout, но не нарушить мой код? Я пробовал с clear, и это не сработало.
По какой-то причине, когда я удаляю ее везде, это нарушает мой код (также, если я удаляю эту функцию везде). Когда я говорю «return» вверху перед выполнением таймаута, появляется мой jQuery, но мой код не работает.
Также следует упомянуть, что мой файл jQuery загружается в Mozilla. Он также загружается на моем локальном компьютере в Chrome и Safari, но не в режиме реального времени на сервере (я также использую WordPress) Safari / Chrome.
Функция с setTimeout
function queueRender() {
var _this = this;
settings.queueRenderTimeout = setTimeout(function(){
render();
}, settings.debounce);
if(typeof settings.queueRenderTimeout !== "undefined") {
clearTimeout(settings.queueRenderTimeout)
}
render();
}
Вот функция рендеринга
function render() {
element.find(">").remove();
var t = templates.quiz(quiz);
element.append(t);
$(settings.append).append(element);
}
— итак, в этом случае мой jQuery загружается, но мой тест прерывается.
если я изменю порядок и поставлю сначала оператор IF, то мой код не сломается.
Вот мои настройки:
var defaults = {
append: "body",
quiz_template: "#quiz_template",
question_template: "#question_template",
answer_template: "#answer_template",
result_template: "#result_template",
shuffle: true
// debounce: 10
}
Код — это то, что иногда не работает. Он работает на моем локальном компьютере, но не на сервере. Я чувствую, что все еще есть некоторая задержка с setTimout, даже когда я оставляю его «неопределенным».
Комментарии:
1. Вы очищаете время ожидания перед его настройкой!
2. @unlucky13 Попытался поменять их местами — не сработало. 🙁
3. Я не уверен, чего вы пытаетесь достичь здесь, но, да, после установки таймаута значение
typeof settings.queueRenderTimeout !== "undefined"
всегда равно true, какsettings.queueRenderTimeout
и теперь идентификатор таймаута.4. @unlucky13 Ах да! Я забыл поставить render() в качестве последнего. Большое спасибо! Я действительно ценю это.
5. Добро пожаловать! Просто примечание, я думаю, что в вашем коде есть что-то, что не имеет смысла: вы устанавливаете тайм-аут и сразу же очищаете его без какой-либо конкретной причины?