|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 184
|
|
Секундомер30.01.2013, 11:45. Показов 12318. Ответов 13
Метки нет (Все метки)
Есть база для проведения тестов, срок сдачи тестов ограничен временем. Как лучше реализовать отображение времени оставшегося для сдачи теста?
0
|
|
| 30.01.2013, 11:45 | |
|
Ответы с готовыми решениями:
13
Секундомер(и только секундомер). секундомер C#
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 200
|
|
| 30.01.2013, 12:21 | |
|
Два варианта в голову лезут.
1. Агентом каждые 5 минут пробегаться по документам и вычислять оставшееся время 2. Агентом каждые 5 минут в notes.ini перезаписывать текущее время, получать его в столбце вьюшки @Environment("CurrentTime") Первый, наверное лучше, особенно, если перебирать не все документы, а брать коллекцию только из тех, которые еще не просрочены. Во втором варианте, по-моему надо каждый раз перестраивать индекс вьюшки, хотя могу ошибаться.
0
|
|
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
| 30.01.2013, 12:36 | |
|
Если нужно только визуальное отображение на форме то JavaScript должен прекрасно с этим справится.
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
| 30.01.2013, 12:54 | |
|
Почитай в хелпе про NotesTimer и пример посмотри.
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
|
||
| 30.01.2013, 13:03 | ||
у меня были студенты, которые крутили время на компе
0
|
||
|
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
|
|
| 30.01.2013, 14:14 | |
|
таймером запускать агент
0
|
|
|
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
|
|
| 30.01.2013, 17:21 | |
|
См. тему . Внутри агента можно брать серверное время, допустим раз в 10 секунд.
0
|
|
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 184
|
|
| 04.02.2013, 13:01 | |
|
А каким образом брать время с сервера? На сколько точный этот NotesTime, у меня с интервалом 1 сек в течение 30 сек опоздал на 5?
0
|
|
|
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
|
|
| 04.02.2013, 13:48 | |
|
Serduko
а потому что не надо пользоваться этим таймером для отчета времени, им надо пользоваться для инициализация скрипта который получает серверное время. получать время можно агентом, например так @Now( flags ; serverNames )
0
|
|
|
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
|
|||
| 04.02.2013, 15:40 | |||
Создайте документ в БД (она на сервере ж находится?) и возьмите дату создания. @Now(flags; serverNames) глючит, об этом писали здесь, ищите. Добавлено:
0
|
|||
|
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
|
|
| 06.02.2013, 15:49 | |
|
Serduko
Ещё подумал... Достаточно первый раз создать документ и взять дату и время, а затем просто прибавлять по секунде, т.к. секунда прибавляется, что на клиенте, что на сервере одинаково ;) Время вперёд убегает потому, что при создании дока UNID генерится на определённую секунду, а если до создаётся в пределах той же секунды, то чтобы UNID для него был уникальным, он рассчитывается по следующей секунде. Об этом было подробно когда-то на форуме Интертраста. Лучше, чтобы прибавлять >= 1 секунды, тогда время убегать не должно. Но иногда всё-таки будет, т.к. на сервере/клиентах могут работать другие агенты/люди, которые могут в то же время создавать документы.
0
|
|
|
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
|
||
| 07.02.2013, 07:09 | ||
еще не забудь при использовании NotesTimer-а таймер останавливается, если на документе появится диалоговое окно, допустим при открытии свойств дока. поэтому разумнее будет 1) запомнить серверное время, когда начался тест, и скинуть его в NotesdateTime 2) потом каждый раз NotesTimer-ом получать разницу в секундах между исходным временем и текущем 3) если эти полученные секунды превышают или равны, отведенному времени, автоматом останавливаешь тест.
0
|
||
|
0 / 0 / 0
Регистрация: 19.03.2011
Сообщений: 205
|
|
| 07.02.2013, 12:27 | |
|
С сервера время брать не обязательно.
startTic = Getthreadinfo(6) берет "тики" с сотворения мира и они не меняются при изменении времени в операционке. Декларируйте startTic глобально, вычисляйте его, например, в PostOpen и используйте как опорное. И потом, лучше использовать JS: Например на "кнопочках" - в OnLoad нажимаете программно кнопочку MyClock window.document.forms[0].MyClock.click() а кнопочка MyClock нажимает саму себя с интервалом в 1сек. {setInterval("window.document.forms[0].MyClock.click()",1000)}, корректирует значение startTic, выводит значение времени в какое-нибудь поле для показа и проверяет не истекло ли время (с соответствующими действиями). Если хочется в LS, то нажимаем на кнопочку например так: Dim ws As New NotesUIWorkspace Call ws.URLOpen( "java script: document.forms[0].MyClock.click();" )
0
|
|
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 184
|
||||||||||||||||
| 10.02.2013, 10:29 | ||||||||||||||||
|
Спасибо всем, я реализовал в диалоге, примерно так (конечно код сыроват, все делалось впопыхах, но аттестация прошла успешно, теперь можно спокойно дорабатывать базу):
0
|
||||||||||||||||
| 10.02.2013, 10:29 | |
|
Помогаю со студенческими работами здесь
14
Секундомер
Секундомер Секундомер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|