Od jakiegoś czasu bawie się asynchroniczymi wywołaniami. Muszę przyznac że gdy moja biblioteka obsługująca wywołania rozrosła się korzystanie ztakiej fomy pobierania danych stało się całkiem wygodne. Jednak jeden szczegół nie pozwala mi w pełni się cieszyć z tej metody.
Mianowicie choci o to że każde pobieranie danych muci być obsłuzone przez funkcje callbackową. Powoduje to znaczne pogorszenie komfortu programowania ponieważ nie możemy pobrać danych bezpośrednio do zmiennej i jednocześnie przerzucamy część logiki która owinna się znaleźć tuż przy wywołaniu do innej funkcji.

Przykład:
  1. <div id="container"></div>
  2.  
  3. <script type="text/javascript">
  4.  
  5. //zamiast calkiem naturalnego
  6. document.getElementById( "container" ).value = ajax.makeRequest( "request" );
  7.  
  8. //jesteśmy zmuszeni do bardzo nie naturalnego
  9.  
  10. function callback( response ){
  11. document.getElementById( "container" ).value = response;
  12. }
  13.  
  14. ajax.makeRequest( "request", callback );


Wiem że powyższy przykład wygląda całkiem niegroźnie ale przy bardziej skomplikowanych operacjach robi się już bałagan.


W pierwszym momencie rozwiązanie wydalo mi się banalnie proste. Aby zwrócić odpowiedź serwera wystaczy poczekać aż zostanie ona cała załadowana i przekazać ją dalej.

Coś w stylu:
Cytat
        do
        {
            //jakas petla "usypiajaca"
        }
        while(ajax.http.readyState != 4);



Okazuje sie jednak że przy takiej operacji readyState zawsze pozostaje jedynką , a nieskończona pętla wiesza przegladarki.

Przeszukałem naprawde spory kawałek sieci i nie udalo mi się znaleźć rozwiązania (oczywiście nie jest nim microsoftowski serverXMLHTTPReqquest ). Dlatego zwracam się do Was z prośbą o pomoc, bo co 11 044 głowy to nie jedna biggrin.gif .

----edit----
Bykom STOPexclamation.gif!
~mike_mech