eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwJS - asynchroniczna komunikacjaRe: JS - asynchroniczna komunikacja
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Cezary Tomczyk <c...@g...pl>
    Newsgroups: pl.comp.www
    Subject: Re: JS - asynchroniczna komunikacja
    Date: Fri, 03 Feb 2012 23:59:18 +0100
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 149
    Message-ID: <jghosc$l8g$1@inews.gazeta.pl>
    References: <mhrcxx362il5.10uirtha6ig3n$.dlg@40tude.net>
    <n...@4...net>
    <1...@4...net>
    <jge8qc$49n$1@inews.gazeta.pl>
    <b3zj0zo3rq0n$.laq0revr8yqv.dlg@40tude.net> <jggb0g$2s$1@inews.gazeta.pl>
    <1...@4...net>
    NNTP-Posting-Host: ip-79-175-205-52.cable.smsnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1328309969 21776 79.175.205.52 (3 Feb 2012 22:59:29 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 3 Feb 2012 22:59:29 +0000 (UTC)
    X-User: ctomczyk.pl
    In-Reply-To: <1...@4...net>
    User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:9.0) Gecko/20111222 Thunderbird/9.0.1
    Xref: news-archive.icm.edu.pl pl.comp.www:400385
    [ ukryj 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/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: