немного подробностей:
обновление самого чата производится по таймауту через 5 секунд после последнего обновления (не каждые 5 секунд - прошу не путать)
обновление списка присутствующих - через минуту после последнего обновления.
где-то вычитал, будто эксплореру дабы не зависал, надо не асинхронные запросы посылать...
Код:

req.onreadystatechange = function() {
if (req.readyState == 4) {
...
}
}
req.caching = false;
req.open('POST', 'inc/chat.request.php?uid=' + uid, false);
req.send({ call: 'teamsUpdate', Ordr: Ordr });
в ie работает, в файрфоксе - отказывается...
пришлось переписывать класс Subsys_JsHttpRequest_Js:
Код:

...
_asyncFlag: null,
...
open: function(method, url, asyncFlag, username, password) {
this._openArg = {
'method': method,
'url': url,
'asyncFlag': asyncFlag != null? asyncFlag : this._asyncFlag,
'username': username != null? username : '',
'password': password != null? password : ''
};
this._id = null;
this._xmlReq = null;
this._reqHeaders = [];
return true;
},
...
// Constructor.
_construct: function() {
if (window.XMLHttpRequest) {
this._asyncFlag = true;
} else {
this._asyncFlag = false;
}
},
...
теперь, когда создается с пустым третьим параметром, всё везде работает:
Код:

req.open('POST', 'inc/chat.request.php?uid=' + uid);
эксплорер виснет только при медленном коннекте
файрфокс не виснет от этого никогда
помогите определить природу зависаний