Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2015, 23:07   #1
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию JS. Приостановить setInterval

Здравствуйте!

Прошу подсказки или пинка в нужном направлении. Есть таблица. Значения всех ячеек (кроме шапки) обновляются раз в полсекунды через setInterval. Если кому интересно, внутри функции setInterval у меня bash-скрипт, который вытаскивает значения для таблицы из некой области совместно используемой памяти. В сегменте памяти данные постоянно меняются СИшной программой. Дальше углубляться не буду

Задача стояла следующая. Обеспечить возможность редактирования таблицы непосредственно со странички и измененные значения записывать в тот же сегмент памяти. Набросал обработчик на событие click по ячейке, которую будем менять. При клике у меня создается в ячейке textarea и в это поле я вношу новые данные. Но столкнулся с проблемой

Не успеваю я отредактировать ячейку и жмакнуть Enter для сохранения, как у меня в очередной раз срабатывает setInterval и перезаписывает содержимое. Естественно, textarea сбивается и ничего я отредактировать не успеваю.

Подскажите, как можно тормознуть setInterval, если произошел click и запустить его вновь после конца обработчика для click?
ДУмал использовать clearInterval, но он как я понял с концами убивает setInterval
Bayern_M вне форума Ответить с цитированием
Старый 31.08.2015, 23:34   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Пусть убивает setInterval. Когда будет можно - запустите таймер заново.

Код:
var interval = false;
function getData() {
    //get data
}

function startInterval() {
    if(interval) {
        stopInterval();
    }
    
    interval = setInterval(getData, 500);
}

function stopInterval() {
    if(interval) {
        clearInterval(interval);
    }

    interval = false;
}

startInterval();
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 03.09.2015, 12:28   #3
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Большое спасибо за идею!
Bayern_M вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
setInterval и текстовое поле deniscatch JavaScript, Ajax 3 15.02.2014 12:29
setInterval не работает bill JavaScript, Ajax 1 10.12.2012 11:40
setInterval и вызов функции Student1992 JavaScript, Ajax 2 26.11.2011 20:25
Передача параметра в setInterval SkrudjMakdak JavaScript, Ajax 13 11.07.2011 14:44
SetInterval и SetTimeOut Syltan JavaScript, Ajax 1 10.05.2010 22:42