Всем привет столкнулся с такой проблемой.
Но для начала о странице. Это динамически обновляющийся лог. Имеем навеху несколько кнопок и несколько чекбоксов. Всё это составляет панельку. Далее, ниже, собственно место, в которое выводится лог. Каждая строка лога дописывается в отдельный <p> и целая структура имеет следующий вид:
<div class="content">
<div id="logData">
<p>строка лога</p>
<p>строка лога</p>
<p>строка лога</p>
<p>строка лога</p>
.... //и так далее
</div>
</div>
Добавление строк реализуется с помощью AJAX в режиме синхронном. В целом, функция, которая отвечает за добавление записей выглядит так (некоторые ненужные строки удалены, что бы было легче читать):
function getData( address, lastLineId ) {
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (xhttp.readyState == 4 && xhttp.status == 200) {
ajRespCount = ajaxResponce.length;
if ( ajRespCount > 0 ) {
for (var i=0; i < ajRespCount; i++) {
var currentRecord = ajaxResponce[i];
var currDoc = parseLine(currentRecord.text);
// функция parseLine возвращает строку типа <p class..>текст строки лога....</p>
document.getElementById('logData').appendChild( currDoc );
}
checkLimit();
scrollToBot();
}
}
}
xhttp.open('GET', address + lastLineId, false);
xhttp.send();
}
функция
parseLine функция parseLine возвращает строку типа
<p class..>текст строки лога....</p>
И всё, вроде бы, хорошо, всё работает.
НО: редко, но бывает такое, что кнопки и чекбоксы верхней панельки не срабатывают с первого раза. Кликаешь, ничего не происходит. Кликаешь второй раз и всё в порядке. Подозреваю, что это из-за того, что добавление строки лога блокирует интерфейс на доли секунды. И вот вопрос: как от этого избавиться? И можно ли.. Иногда это мешает. Что не есть хорошо.
PS: используется только чистый javascript. Возможность использования библиотек или фреймворков исключена.
PSS: не знал в какую ветку форума закинуть тему. Оставил здесь, так как главная проблема в элементах..
Спасибо.