Я хотел бы определить, когда значение переменной обновляется на сервере, и выполнить обратный вызов, который отправляет новое значение клиенту, чтобы обеспечить подачу в реальном времени. Например, скажем, сервер генерирует случайное число через случайные интервалы, но для клиента важно знать, что новое число генерируется, как только это происходит.
Одним из простых решений является определение пользовательской функции, которую вы используете для установки значения вместо прямой установки его с помощью '=':
function setValue(val) { a = val; websocket.send(a) }
Но для этого необходимо вернуться к уже написанному коду и заменить все экземпляры этой обновляемой переменной, чтобы вместо этого использовать пользовательскую функцию. Утомительный и подверженный ошибкам процесс, но должен быть выполнен только один раз.
Другое решение, о котором я читал, заключается в определении установщика для переменной при его инициализации, как описано здесь .
Для этого потребуется только заменить все места, где переменная инициализируется в первый раз, но, поскольку она слушает скрытое в фоновом режиме, я беспокоюсь, что это снижает читабельность, и кто-то может забыть, что при каждом обновлении переменной срабатывает обратный вызов.
Я не пишу профессионально, поэтому я не уверен, какое из этих решений будет более широко распространено, или если есть лучший способ, к которому я должен подходить. Также не уверен в том, что это может повлиять на производительность, но я думаю, что это ничтожно мало.