objDiv.scrollTop = objDiv.scrollHeight;
в блоке уже новые сообщения.// Скроллим еще ниже
if(scrollBottom == true){
//alert("Скроллим вниз");
objDiv.scrollTop = objDiv.scrollHeight;
}
// Скроллим еще ниже
if(scrollBottom == true){
//alert("Скроллим вниз");
setTimeout(()=>{
objDiv.scrollTop = objDiv.scrollHeight;
},1000);
}
# NodeJS specific #
.nyc_output/
coverage/
node_modules/
npm-debug.log
package-lock.json
test/*.log
которая будет касаться как большей точности чисел (и их ошибок округления в таких языках, как JS),
var n = 0.1 * 0.2;
console.log( n)
так и времени вычислений
let n = 1e9;
let k = 1e10;
выполняется моментально, и скрипт выполняется дальше
но вот браузеру, для того, чтобы перерисовать новые данные вставленные в innerHTML нужно хоть и не большое, но все же отличное от нуля время. Параметры scrollTop и scrollHeight он пересчитывает по окончании отрисовки, и этот момент наступает позже чем вы делаете
objDiv.scrollTop = objDiv.scrollHeight;
. По хорошему так быть не должно, и по логике вещей код после этой строчки должен выполнятся не раньше чем браузер завершит все отрисовки. Но имеем то что имеем. Дав браузеру небольшую паузу получаем нужный нам результат. Недостатком такого подхода является ситуация когда браузер/комп чуть подтормаживает (память забита и/или в фоне запущенно 15 игр), в такой ситуации паузы может не хватить.