Странности с abort();

Апокалипсис

тех дир matras.ru
Странности с abort();

Ситуация такая есть код:


function mainrel(fl,url)
{

sTime();
top.preq.abort();
top.preq.onreadystatechange=mainact;
top.preq.open("post","a.php",true);
top.preq.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=windows-1251");

top.preq.send("uid="+top.muid+"&a=getmesg&lid="+lastId+"&z="+Math.random()+"&"+url);

}
Этот код работает прекрасно в IE, а в FF responseText в ф-ции mainact по таймауту выдаёт два раза одно и тоже (firebug'ом смотрю, сам ответ сервера разный, а responseText повторяется дважды одно и тоже. Убираю top.preq.abort(); в FF всё начинает работать прекрасно а в IE перестаёт срабатывать setTimeout(); Чудеса какие-то, может кто сталкивался?

Заранее спасибо!
 

algo

To the stars!
Фикс, естественно, во такой..

---- кривой код -----
top.preq.onreadystatechange=mainact;
top.preq.open("post","a.php",true);

---- прямой код -----
top.preq.open("post","a.php",true);
top.preq.onreadystatechange=mainact;

P.S
Кстати, для IE команда abort не нужна в данном случае.
 

Апокалипсис

тех дир matras.ru
algo
угу спасибо, всё заработало норм) А для чего abort(); нужен в таких случаях? Чтобы оборвать соединения возможно используемые этим объектом XMLHttpRequest ?)
 

Апокалипсис

тех дир matras.ru
Угу спасибо. Дабы не создавать тему спрошу тут.
Вот программа работает отлично (может работать целый день отлично, а может раз в час выбивать такую ошибку (firebug) выбивает:

uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no]

Вот что это значит что то я не нашёл нигде((
 

algo

To the stars!
вопрос как-то связан с этой темой ? Создай новую лучше.
 

Апокалипсис

тех дир matras.ru
algo
Косвенно связан. Нигде не встречал таких ошибок как с вышеуказанными ф-циями, просто хотелось бы примерно узнать критично ли это или нет.

-~{}~ 06.05.07 20:58:

Волнует то что, скрипт может работать не вызывая проблем, но бывает эта ошибка вылетает...
 

flash-vkv

Новичок
а можно чуть болие конкретный код

-~{}~ 07.05.07 00:19:

так навсякий случай метод send() можно использовать тока если readyState == 0 .
 

BRat

o_0
Апокалипсис
гугл
http://www.google.ru/search?hl=ru&q=NS_ERROR_NOT_INITIALIZED&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
 

Апокалипсис

тех дир matras.ru
ну ф-ция mainact:
function mainact(){

if(top.preq.readyState==4){
if(top.preq.status==200){
if(top.preq.responseText=="reload")
{
top.location='a.php?uid='+sesid+'&newcolor=yes';
}else{

var reply=new Array();
var lines=new Array();
var aline=new Array();
tpr = top.preq.responseText.toString();
reply = tpr.split('^');
lines = reply[0].split('|');
for(i=0;i<(lines.length-1);i++)
{
aline=lines[ i ].split('*');
pm(aline[0],aline[1],aline[2],aline[3],aline[4]);
lastId=aline[0];
}
}
}
}
}

где pm - просто парсинг мессаг с флагами (допустим 1 - приватное, 2 - общее) + innerHTML
sTime(); - ф-ция задёт обновление..
И всё, больше нет никаких ф-ций


Да ещё я обращаюсь к объекту который задан в top файле фреймов(т.е. в общем), может это ни есть гуд?
ps/ [ i ] - это я поставилл чтобы форум не переводил в ббкод

-~{}~ 06.05.07 21:26:

BRat
cпасиб а я что то искал да нетак(
 

Апокалипсис

тех дир matras.ru
flash-vkv
ну да с аборт уже решил) убрал его и всё гуд) только вышеуказанная ошибка бывает вылазеет а бывает инет)
ps/ щас как раз читаю что это
 

flash-vkv

Новичок
а тогда можеть быть понял
if(top.preq.readyState==4){
..... это ваш код ......
top.preq.abort();
}

но всеже по коду непонятно при каждом запросе вы создаете заново top.preq. или используете преждний

-~{}~ 07.05.07 00:44:

а ошибка вскорее всего потомучто
при send() у вас readyState != (0 || 4 ).
 

Апокалипсис

тех дир matras.ru
используется прежний естественно, один раз заданный в top'е
угумс, спасиб проверю отслежу ридистайт при сенде)
 

algo

To the stars!
Сцыла в тему http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_a_1.html
 
Сверху