Спасибо за отзыв о setInterval, это очень помогло мне попасть на полпути.
У меня было еще множество проблем с асинхронной природой вызовов jget.get (), которые я вызывал в функции, а затем в зависимости от результата вызова .get () должен возвращать true / false. Это не работает, если вы вызываете асинхронную функцию, насколько я обнаружил, по крайней мере. Эта асинхронная функция может вызывать другую функцию, которую я использовал для изменения DOM.
Мое окончательное решение этой проблемы заключается в следующем.
Это немного хакерски, и Javascript не изящно деградирует, но код предназначен для системы-прототипа и будет использоваться только в контролируемой среде нескольких компьютеров, поэтому включение Javascript гарантировано.
О моем коде: я всегда отображаю значок кодировки И значок воспроизведения, но скрываю значок, который не имеет значения. Значок воспроизведения кликабелен и выдает всплывающее окно с видео.
См. Pastebin для моего решения.