-
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/
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-20 Grubość socketa AM4+procesor
- 2025-03-20 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-20 Warszawa => Senior Programmer C <=
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-20 Greenpeace została zobowiązana do zapłaty niemal 667 mln dolarów [USA,wyrok sądu]
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Brak ograniczeń dla chińskiego kapitału - wam nie do rządu, tylko na zmywak do chińskiej knajpy!!!
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?