предотвратить гонки в браузере обновляет страницу JavaScript - PullRequest
0 голосов
/ 28 июля 2011

Моя веб-страница имеет функцию автоматического обновления. Автообновление реализовано с использованием таймера.

GInterValId = window.setInterval("AutoRefresh()",interval);

Пользователь также может выполнять некоторые операции, нажимая некоторые кнопки на странице. Функциональность автоматического обновления и пользовательские операции создают условия гонки.

Я бы хотел предотвратить одновременное выполнение двух операций (автообновление и операции с кнопками).

Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 28 июля 2011

что по этому поводу:

busy = false;

function AutoRefresh() {
    if( busy ) return;
    busy = true;
    ...
    ...
    ...
    busy = false;
}

function ButtonOperation() {
    if( busy ) return;
    busy = true;
    ...
    ...
    ...
    busy = false;
}
0 голосов
/ 28 июля 2011

Я предполагаю, что вы действительно хотите, чтобы кнопки выполнялись до автоматического обновления страницы.В этом случае я бы сделал так, чтобы функции операций с кнопками добавляли операцию в очередь, а затем выполняли бы функцию AutoRefresh перед выполнением обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...