-
Data: 2012-02-03 22:59:18
Temat: Re: JS - asynchroniczna komunikacja
Od: Cezary Tomczyk <c...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-02-03 15:27, Marek pisze:
> Dnia Fri, 03 Feb 2012 10:56:27 +0100, Cezary Tomczyk napisał(a):
>
>> Z podanego przeze mnie linku dowiesz się właśnie to, czego potrzebujesz.
>> Ajax to nie jest żaden język programowania tylko protokół komunikacyjny.
>> Ajax to akronim od Asynchronous JavaScript and XML.
>
> Rozumiem ... choć nie do końca. Czy nie jest to przypadkiem oprogramowanie
> w zwykłym JS zrobione?
Nie.
> Funkcja inicjująca:
>
> if (window.XMLHttpRequest) { // Mozilla, Safari, Opera ...
> http_request = new XMLHttpRequest();
> } else if (window.ActiveXObject) { // IE
> http_request = new ActiveXObject("Microsoft.XMLHTTP");
> }
> Już na to wskazuje. Pewnie analiza kodu źródłeowego obiektu ActiveXObject
> przyniasłaby mi odpowiedź i pewnie tak zrobię. Sądziłem, że będzie szybciej
> zadać pytanie na forum.
Z ciekawości: jak już przeanalizujesz ActiveXObject to podziel się
swoimi wynikami. Chętnie się z nimi zapoznam(y).
>> Z artykułu dowiedziałbyś się też, że potrzebna Ci jest jedna metoda:
>> XMLHttpRequest.
>
> IE9 tego nie obsługuje więc odpada takie rozwiązania. Ajax musi mieć więc
> jakąś alternatywę skoro działa to również na IE.
Wydaje mi się, że musisz chyba sam dojść do odpowiednich wniosków.
Informacje przekazane przeze mnie dają dość jasną odpowiedź na Twoje
pytanie.
>> Chyba mogę pokusić się o stwierdzenie, że 99%
>> przeglądarek obsługuje XMLHttpRequest. "Ale"! Z linka dowiedziałbyś
>> dalej też to, że, niestety, inicjacja tego obiektu jest różna w
>> przeglądarkach.
>
> Oj, chyba to nie są wiarygodne dane. W/g:
> http://caniuse.com/#search=XMLHttpRequest
>
> IE nie obsługuje tego obiektu. W/g
> http://ranking.pl/pl/rankings/web-browsers.html
>
> IE stanowi jaieś 20% rynku więc zaledwie 80% przeglądarek (zainstalowanych
> na komputerach) a nie 99% to obsługuje.
Ustalmy pewne rzeczy.
1. Chcesz pobrać dane z serwera.
2. Szukasz sposobu. Jednym z nich jest wykorzystanie wbu-do-wa-ne-go w
przeglądarki protokołu AJAX.
3. Żeby obsłużyć komunikację trzeba mieć jakiś zestaw funkcji, które to
robią. I właśnie za to odpowiada metoda new XMLHttpRequest, a w np. IE
new ActiveXObject("Microsoft.XMLHTTP").
4. Mając już zainicjowany obiekt, np. var http_request = new
XMLHttpRequest(); możesz dokonywać tego, co chcesz. Przykład kodu, który
realizuje właśnie połączenie asynchroniczne:
https://developer.mozilla.org/pl/XMLHttpRequest#Zast
osowanie_asynchroniczne
Nie! To nie jest żadna biblioteka. To są metody wbudowane w przeglądarkę.
>> Dlatego jeśli programujesz pod konkretną przeglądarkę (np. jakiś
>> wewnętrzny projekt firmowy), to nie potrzebujesz żadnych bibliotek. Ale
>> jeśli efekt Twojej pracy ma być działający na wielu przeglądarkach to 1)
>> albo sam napiszesz sobie cross-browserową obsługę protokołu
>> XMLHttpRequest, 2) albo skorzystasz z gotowych rozwiązań.
>
> Oooo! Właśnie. Trafiasz w sedno. Chcę sobie napisać cos takiego i
> potrzebuję wskazówek. W tym wątku pytam w zasadzie o te wskazówki.
> Potrzebuję banalny mechanizm do załadowania fragmentu strony wskutek
> jakiegoś zdarzenia.
Napisz mi, czego nie ma w tym przykładzie:
https://developer.mozilla.org/pl/XMLHttpRequest#Zast
osowanie_asynchroniczne
byś mógł zrealizować to, co potrzebujesz?
> Wymyśliłem roboczo coś takiego, że JS utworzy niewidocznego iframe'a
> przesyłając zapytanie do serwera GET'em (bo chyba POSTem się nie da, a może
> się da gdy w iframie zrobiłbym samosubmitujący się formularz - muszę to
> sprawdzić). Odpowiedź serwera trafi do tego iframe'a w postaci kodu HTML,
> który potem przekopiuję w docelowe miejsce strony WWW. Następnie usunę
> iframe'a programowo albo w ogóle zrobę z niego cos w rodzaju modalnego
> okna.
Brniesz w złym kierunku. Niemniej jednak zrobisz, jak uznasz za słuszne.
>>> Mogę tam się tylko dowiedzieć jak uzyć Ajaxa do zrealizowania transmisji
>>> asynchronicznej co kompletnie mnie nie interesuje. Ja chcę wiedzieć jak w
>>> JS zrealizować transmisję asynchroniczną bez stosowania jakichkolwiek
>>> bibliotek. Nie chcę stosować Ajaxa ani się go uczyć.
>>
>> https://developer.mozilla.org/pl/AJAX/Na_pocz%C4%85t
ek
>>
>> Popatrz na Krok 1: "powiedz "Poproszę!", czyli jak wykonać zapytanie
>> HTTP" - to jest dokładnie to, czego potrzebujesz. Gdybyś do tego miejsca
>> doczytał to nie napisałbyś powyższych zdań.
>
> Przeczytaj naszą konwersację. Cytujesz moje słowa, w których jest " Ja chcę
> wiedzieć jak w JS zrealizować transmisję asynchroniczną bez stosowania
> jakichkolwiek bibliotek". Tymczasem co jest pod tym linkiem? Odpowiedź: jak
> używać bibliotekę Ajaxa.
W materiałach, które Ci podałem, nie ma nic mowy o "bibliotece Ajaxa".
Może inaczej zapytam: używałeś canvas-a czy svg? Manipulowałeś nimi za
pomocą JavaScript-u?
> Dlaczego więc czynisz mi zarzut z tego, że nie doczytałem czegoś? Sam
> przyznasz, że komentujesz to w sposób absurdalny.
Nie przyznam.
> Z linku jaki mi dałeś bardziej zainteresowałbym się kodem źródłowym
> ActiveXObject bo pewnie tam drzemie odpowiedź na moje pytania. Jednakże już
> wspominałem - wolę uniknąć analizowania złożonego cudzego kodu, bo często
> jest on tak nieczytelny, że mnóstwo czasu trzeba poświęcić na uzyskanie
> prostej odpowiedzi.
Bardzo bardzo wdzięczny, jak mimo wszystko podzielisz się swoimi uwagami
z analizy ActiveXObject. Serio.
>>> Nie rozumiem za bardzo skąd jest taki opór w Was aby w 3 zdaniach opisać
>>> jak najlepiej zrealizować zagadnienie bez tych bibliotek? Skąd ten
>>> problem?
>>
>> Nie ma takiej potrzeby, ponieważ już to zostało świetnie opisane na
>> Mozilla Developer Center. I to w dodatku po polsku. Co się rzadko zdarza.
>
> Ale cały czas mówisz o Ajaxie, tak? Dla mnie Ajax to biblioteka.
Ajax to żadna biblioteka. To protokół komunikacyjny.
Tutaj masz bardzo dokładnie opisane działanie i wykorzystywanie tego
protokołu: http://jibbering.com/2002/4/httprequest.html
Tutaj http://www.degraeve.com/reference/simple-ajax-exampl
e.php masz
bardzo prosty przykład pokazujący komunikację przeglądarka <-> serwer.
Wskaż mi proszę, gdzie tam jest wykorzystywana jakaś zewnętrzna
biblioteka? Które metody nie są metodami wbudowanymi w przeglądarkę?
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Następne wpisy z tego wątku
- 03.02.12 23:02 Jordan Szubert
- 03.02.12 23:42 Marek
- 04.02.12 00:02 Jordan Szubert
- 04.02.12 00:04 Marek
- 04.02.12 00:07 Marek
- 04.02.12 00:20 Mirosław Zalewski
- 04.02.12 07:59 M.G.
- 04.02.12 09:47 Artur Muszyński
- 04.02.12 14:29 Paweł Piskorz
- 04.02.12 17:06 Cezary Tomczyk
- 04.02.12 17:35 Marek
- 04.02.12 17:44 Marek
- 04.02.12 18:20 Marek
- 04.02.12 18:37 monter.FM
- 04.02.12 21:16 Marek
Najnowsze wątki z tej grupy
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
- Czy istnieje jakiś emulator przeglądarek pod Mac'a?
- taka sama konfiguracja dla localhost i produkcji
Najnowsze wątki
- 2025-03-31 Kraków => IT Expert (Network Systems area) <=
- 2025-03-31 Białystok => NMS System Administrator <=
- 2025-03-31 Częstochowa => Product Manager - Systemy infrastruktury teleinformaty
- 2025-03-31 Sąd/Sędzia odrzuca wniosek o 30d aresztu Ziobry i jedzie po PO-Komisji Sroki [i Ziobrze w GW wersji]
- 2025-03-31 Warszawa => Sales Executive / KAM <=
- 2025-03-31 Warszawa => International Freight Forwarder <=
- 2025-03-31 Re: Państewko prawka Rumunia czyli pokaz UE leworządności - lider unieważnionych wyborów niedopuszczony do powtórki
- 2025-03-31 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-03-31 Re: Kompensacja mocy biernej przy 230VAC
- 2025-03-31 Re: Kompensacja mocy biernej przy 230VAC
- 2025-03-31 Wrocław => Senior Backend Developer <=
- 2025-03-31 Białystok => Generative AI Engineer <=
- 2025-03-31 China-Kraków => Key Account Manager IT <=
- 2025-03-31 Prawne ciekawostki: Ksiądz KRK wygrał ze swoim biskupem sprawę o "naruszenie dóbr osobistych" [SN oddalił kasacje]
- 2025-03-31 Podatek od "konta wspólnego"