Так, переделал на глобальные переменные. И в самое начало добавил xmlworking = true;.
Виснуть вроде перестало. Но вылез совсем странный глюк - после очередного обновления по всему экрану псевдографика вылезла. Такое ощущение, что в обработчике глюк, хотя там ломаться-то нечему. removeChild(tbl_body) - удаляем старые данные, дальше серией createElement() создаем новую таблицу и в конце appendChild(tbl_body) добавляет новую таблицу на страницу.
function ch_tbl_section()
{
if(!http)
{
http = get_http();
xmlworking = false;
}
if (!xmlworking && http)
{
xmlworking = true;
url = .....;
http.open("GET", url, true);
http.onreadystatechange = function()
{
if (http.readyState == 4)
{
...
xmlworking = false;
}
}
http.send(null);
}
if(!http) alert(\'Ошибка XMLHTTP!\');
}