Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > JS ile senkron request sırasında IE'da donma
Yazar
unforgiven


avatar

Kayıt: 12.06.2008
11.11.2008-16:16 #52417
JS ile senkron request yaparken IE'ın donmaması için ne yapılabilir? aslında yapmak istediğim request yapılmadan önce, request yapıldığını kullanıcıya bildiren bir ifade kullanmak. fonksiyon içinde bu kodlar request'ten önce olmasına rağmen IE yanıt gelene kadar donuyor ve bu kodların yaptığı işin sonucu cevap geldikten sonra görünüyor. o zaman da bir işe yaramıyor.
function DoIt() {
     // 1) request oncesindeki islemler
     // 2) senkron request
     // 3) request sonrasindaki islemler
}

1 nolu bölümdeki işlemlerin sonucunu gördükten sonra donsa problem değil ama ahmak (bence) browser sanki her şey aynı anda olacakmış gibi saçmalıyor (bence).

geçici çözüm olarak kodu ikiye bölerek denedim.
function DoItThread() {
     // 2) senkron request
     // 3) request sonrasindaki islemler
}

function DoIt() {
      // 1) request oncesindeki islemler
     setTimeout("DoItThread()", 1500);
}

bu şekilde yapınca request öncesindeki işlemlerin sonucunu görebiliyorum fakat setTimeout'a gönderdiğim ikinci parametre 1000'den daha az olduğunda IE iyice sapıtıp bir daha yanıt vermiyor. bu şekilde request'i 1.5 sniye kadar geciktirip yapıyorum.

bu olaydan başka türlü nasıl kurtulabilirim? ya da hazır kütüphanelerde asenkron bir request'i senkron request gibi ele alabileceğim fonksiyon ya da sınıflar mevcut mudur?

teşekkürler.


NOT: asenkron yapmayı şimdilik istemiyorum çünkü request içeren her fonksiyon içinde readystate değişimlerini ele almakla uğraşmak istemiyorum. en azından buna operasyonlardan bağımsız bir çözüm bulan kadar.





Yazar
unforgiven


avatar

Kayıt: 12.06.2008
11.11.2008-19:00 #52435
asenkron request'lerde de callback kullanmak istediğimde IE cok tutarsiz calisiyor. nedeni ne olabilir? bazen HTTP 12030 ile donus yapıyor, bazen de hic donus yapmayip kalici bir baglanti olusuyor. o baglantiyi bir sekilde koparmadan ayni host uzerinde yeni bir request yapilmiyor (sayfa refresh bile edilemiyor). bu konuda da bilgisi olan varsa ve paylasirsa tesekur ederim.





Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
12.11.2008-09:56 #52453
JS kodunu adım adım debug ediyor musun? Bir yerdeki hatalı bir kod yüzünden böyle yapıyordur. Bunlar zaten çoğu sayfanın yaptığı standart işlemler. IE'de sorun olma ihtimali çok düşük.





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
unforgiven


avatar

Kayıt: 12.06.2008
12.11.2008-15:17 #52457
yanıtın için teşekkür ederim. senkron request yaparken IE'da donma olmasının IE'daki thread yapısından kaynaklandığını düşünüyorum. çünkü en basit request'lerde bile bu olay oluyor. sadece bu donma olayını belli etmeyecek bir çözüm aramıştım.

şimdi senkron request'ten vazgeçmiş bulunuyorum fakat ikinci mesajımda bahsettiğim hata çok tuhaf. asenkron requestte callback fonksiyon kullandığımda FF'da hiç sorunsuz çalışıyor fakat IE'da bazen çalışıyor, bazen 13020 döndürüyor, bazen de request hiç gerçekleşmeyip (ya da yanıt alamıyor da olabilir) kalıcı bir bağlatı oluşuyor (sonrasındaki request'lere engel olan bir olay). debug yapmaya çalıştım ama sonuç alamadım. çünkü debug yapmaya çalışırken IE sürekli hatalar veriyor ve genellikle "belirtilmeyen hata" diyor. javascript debugging konusunda IE zayıf kalıyor.





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb