Поскольку Вы сказали, что средство выбора Даты легко, там существуют многие.
Что касается средства выбора Времени, проверьте, как Google Calendar делает это при создании новой записи. Это позволяет Вам вводить в чем-либо, в то время как одновременно это имеет выпадающее в 30 минимальных инкрементах. Выпадающие изменения, когда Вы изменяете минуты.
, Если необходимо позволить пользователю выбирать секунды, тогда лучшее, можно сделать, typable/drop вниз комбинация
Использование setTimeout
с очень маленьким таймаутом ( 0
или почти нулевым, если вы чувствуете себя параноиком) - единственный способ сделайте это в контексте браузера. Он работает очень хорошо и очень надежно, но обязательно срабатывайте достаточно часто, но не слишком часто , так как на то, чтобы вернуться к вам, нужно время («некоторое время» в компьютерном смысле, конечно ; это почти мгновенно [по модулю других вещей, которые вы, возможно, делаете] в человеческих терминах).
Убедитесь, что вы используете асинхронный запрос, поскольку синхронный запрос блокирует браузер (что объясняет блокировку графического интерфейса пользователя).
Если это не ваша проблема, я думаю, вы хотите что-то вроде этой очереди задач.
var queue = [];
queue.push(someTaskFunction);
queue.push(anotherTaskFunction);
// ...
var runQueue = (function () {
var len = queue.length, task = 0;
for (; task < len; task++) {
yield queue[task]();
}
}());
Вызов runQueue.next ()
для выполнения следующей задачи. Оберните его в оператор try..catch как таковой:
try {
runQueue.next();
} catch (e if (e instanceof StopIteration)) {}