Starší komentáře ke článku: Google Suggest aneb našeptávač s XMLHttpRequest

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Leo

Datum vložení: 22.8.2005 1:31:06

Z pohledu prenosu dat je to obrovske plytvani, kdyz se po kazdem pismenku udela komplet http pozadavek/odpoved (ktery ma mnohem vic bajtu), na rychlem pripojeni to funguje, ale na vlastnim webu, kde mate vetsinou jen malo smysluplnych klicovych slov by mozna slo vymyslet neco efektivnejsiho.

Avatar

Autor komentáře: Lukas

Datum vložení: 22.8.2005 3:17:51

U maleho/malonavstevovaneho webu naopak prenesena data nikoho nezajimaji, protoze zkratka nikdy nejake kriticke hodnoty nedosahne. (Nebo jste to s "plytvani daty" myslel nejak ekologicky, jako ze se zatezuje cely internet? Pche...) Mimoto nikdo nerika, ze znalosti z tohoto clanku je nutne pouzit prave suggestu, je to jen mala ukazka, ktera muze pomoci pri tvorbe komplexnejsich aplikaci.

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 22.8.2005 17:42:11

Ani pomalá linka se nijak nepřehltí, protože při vyslání dalšího požadavku je předcházející spojení násilně ukončeno. Dívám se na to jinak - mohlo by to být velkou zátěží pro databázi, která data dohledává. Ve svém projektu to řeším tak, že požadavek na server vyšlu až pokud uživatel 600 ms nechá klávesnici na pokoji :-)

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 22.8.2005 18:16:33

Nemohla by se zátěž na server snížit využitím pregenerovaných datových XML sad? Místo aby se pokaždé lezlo do databáze?

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 22.8.2005 18:27:27

To by bylo dalším krokem. Samozřejmě závisí na unikátnosti dotazů, jestli se tento postup vyplatí...

Avatar

Autor komentáře: Leo

Datum vložení: 22.8.2005 23:28:11

XML by na to bylo priserne ukecany, Google Suggest neposila do prohlizece XML, ale JavaScript (i kdyz s content-type: text/html, jak tady kdosi psal).

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 23.8.2005 6:04:14

Nikdo tady netvrdil, že by se XML někam posílalo, nebo snad ano? A když už, XmlHttpRequest umí pracovat i s binárními daty, takže lze to XML komprimovat na naprosté minimum ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 22.8.2005 23:01:06

"protože při vyslání dalšího požadavku je předcházející spojení násilně ukončeno" Tim myslite co? Pohled na http a tcp/ip komunikaci meho FF s Google Suggest nic takoveho neukazuje. Myslite to, ze pokud pisu rychle, tak aplikace (TCP) ceka az bude co poslat, nebo ma nejaky casovy krok a neposila to po pismenech (posle pak kus retezce)? Leo

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 23.8.2005 19:36:22

Měl jsem na mysli tento řádek kódu: if (xml.readyState != 0) xml.abort(); Tímto by mělo být uzavřeno spojení se serverem a na data, která dosud nedorazila, se nečeká, protože server je o uzavření spojení informován. Doufám, že nekecám, protože TCP moc do hloubky neznám :o) Jinak myslím, že Google Suggest ani Seznam to po písmenech neposílá, ale to si ostatně můžete zkusit sám.

Avatar

Autor komentáře: tyctor

Datum vložení: 13.9.2005 14:00:57

... ale posila ..

Avatar

Autor komentáře: Generalko

Datum vložení: 29.9.2007 16:00:10

chtel bych Vas poprosit o radu, jak vyresit to, aby se vyslal pozadavek az po tom, co uzivatel necha X ms klavesnici na pokoji.. Pisete, ze ve svem projektu.. ten clanek, ke kteremu patri tohle forum je Vas, ale tam jsem to nejak nezahledl..

Avatar

Autor komentáře: scorpi

Datum vložení: 22.8.2005 2:22:10

Je zajimave sledovat, jakym zpusobem ziji webove technologie. Prohlizece, ktere umoznuji to co se dneska modne nazyva AJAX, uz maji majoritni zastoupeni nekolik let (rekl bych ze tak pred 4-5 lety uz s tim slo pracovat), ale teprve kdyz to zacal pouzivat nedavno Google, tak o tom zacali vsichni mluvit a nahle mame XMLHttpRequest i v minoritnich browserech Opere a Safari...protoze v nich nebehal Gmail:) Mozna, ze prave Google zachrani soucasne prohlizece jako platformu pro bohate internetove aplikace pouze a jenom tim, ze vyuziva soucasne moznosti. Je to legrace:)

Avatar

Autor komentáře: Lukas

Datum vložení: 22.8.2005 3:19:50

A to by mel Google vyuzivat budouci moznosti? Obavam se, ze ty jeste nikdo nepodporuje. A 4-5 let je normalni doba na odumreni starych prohlizecu. Dobry je taky tenhle tutorial: http://www.webpasties.com/xmlHttpRequest/

Avatar

Autor komentáře: scorpi

Datum vložení: 22.8.2005 14:12:44

Nerikam, co by google mel vyuzivat, jen rikam, ze mozna diky googlu se "AJAX" prosadi mezi nekolika soucasnymi kandidaty na majoritni RIA platformu, protoze podniti jeji rozsireni a dalsi vyvoj. Btw. pro Operu a Safari to v dobe vzniku Gmailu byly opravdu budouci moznosti:) Tot vse.

Avatar

Autor komentáře: von Banhoff

Datum vložení: 22.8.2005 9:20:05

jak poznám zabezpečený MSIE od nezabezpečeného? a není vůbec "zabezpečený MSIE" jen jednou z urbal legends?

Avatar

Autor komentáře: 1lomeno3

Datum vložení: 22.8.2005 10:09:49

Ze ho nemas nainstalovaneho ;)

Avatar

Autor komentáře: von Banhoff

Datum vložení: 22.8.2005 12:12:19

a nebo tak :))

Avatar

Autor komentáře: llook

Datum vložení: 24.8.2005 22:13:03

"Zabezpečený" je v IT relativní pojem. Rozhodně bude zabezpečenější IE6SP2 se zakázanými veškerými ActiveX, než IE6SP1 se "střední úrovní bezpečnosti". A zrovna zákaz ActiveX tenhle našeptávač nerozdejchá, protože cojávim (=afaik) XmlHttpRequest je v MSIE/WIE realizován právě přes ActiveX komponentu. Ale spíš bylo myšleno to, že WinXP SP2 přinesl nějaká nová omezení js, takže načítat cizí stránky už tak dobře nelze. Můžeme jen závidět těm, kteří slovo "zabezpečený" berou jako pojem absolutní.

Avatar

Autor komentáře: Arcao

Datum vložení: 22.8.2005 19:04:02

Udelal jsem trochu jine reseni. Pouziti XMLHttpRequest + eval mi pripada trochu krkolomne, hlavne kdyz to vraci cisty javascriptovy kod. Pouzil jsem vkladani tagu script pres DOM. Taky jsem to trochu procistil, napr *.innerText sem nahradil *.firstChild.nodeValue, atd. Bohuzel Google posila content-type toho kodu text/html, coz nejak nemuze IE skousnout. Takze nakonec vyhralo reseni: stazeni phpkem a pridani content-type: text/javascript. V Moz. Firefoxu to funguje i bez tohoto "hacku" - bere content-type z type atributu tagu style. V Opere jsem to nezkousel, ale myslim, ze by to melo fungovat. 100% by se to dalo jeste vylepsit, napr. podpora sipek nahoru/dolu. Jinak toto reseni uspesne pouziva sam Seznam.cz. TEST: http://work.arcao.com/suggest/

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 22.8.2005 19:13:13

Pěkné řešení, navíc je v praxi použitelnějí, díky za něj :-)

Avatar

Autor komentáře: Leo

Datum vložení: 22.8.2005 23:04:10

Myslite tohle?: http://www.chose.cz/weblog/index.php/dynamicke-nacitani-obsahu-pres-javascript/

Avatar

Autor komentáře: Arcao

Datum vložení: 23.8.2005 17:27:43

Taky mozne reseni, ale zrovna o tomoto clanku na Choseho blogu jsem zrovna nevedel. Asi jsem ho zacal cist pozdeji :) Kazdopadne nedavno jsem potreboval v jednom projeku nacist z databaze data bez reloadu stranky, kdyz jsem vedel id zaznamu. Puvodne jsem pouzil XMLHttpRequest, ale pak jsem narazil na chybu v Moz. Firefox (proste pokud se behem XMLHttpRequest.open zavre otevrene okno pres windows.open, tak objekt XMLHttpRequest nahlasi chybu, ze data nejsou k dispozici-psal jsem o tom na rootu - je to v Akta x AJAX v diskuzi, a samozrejme napsane i v Bugzille). Nakonec jsem prozkoumal reseni pouzite na Seznam.cz, a to jsem pouzil. Pokud neni potreba posilat velke mnozstvi dat pres POST metodu, tak je daleko vyhodnejsi pouzit metodu GET dohromady s nacitanim javascriptu pres vlozeni do stranky za pomoci DOM.

Avatar

Autor komentáře: Leo

Datum vložení: 23.8.2005 20:50:35

"Pokud neni potreba posilat velke mnozstvi dat pres POST metodu, tak je daleko vyhodnejsi pouzit metodu GET dohromady s nacitanim javascriptu pres vlozeni do stranky za pomoci DOM." Naprosty souhlas, prijde mi to mnohem elegantnejsi a nejaky Konqueror... Leo

Avatar

Autor komentáře: KT

Datum vložení: 24.8.2005 9:42:13

...akorát není ošetřena diakritika, např. při zadání "í" to padá

Avatar

Autor komentáře: Pykaso

Datum vložení: 22.8.2005 22:49:53

Osobně mě inspiroval seznam našeptávač a využívám něco podobného na intranetu v adresáři kontaktů. Při psaní jména zákazníka na doklad se zobrazují možné jména. Stačí kliknout a vyplní se zbytek formuláře. Když to děláte 1000x denně tak to ušetří dost času.

Avatar

Autor komentáře: Roman Dagi Pichlik

Datum vložení: 24.8.2005 10:13:46

Docela dobre je cela anatomie Google Suggestu, vcetne klicovych pasazi kodu, rozebrana ve spotu Chris Justuse http://serversideguy.blogspot.com/2004/12/google-suggest-dissected.html Pokud se s vlastnim naseptavacem nechcete patlat, pak muzete vyuzit WICK, the Web Input Completion Kit http://wick.sourceforge.net/ Dalsi informaceo komponentach podobneho razeni lze najit na blogu Ajaxian http://www.ajaxian.com/

Avatar

Autor komentáře: igor

Datum vložení: 14.12.2005 8:59:49

if (typeof XMLHttpRequest!="undefined") undefined je dost na prd napriklad nemecky IE vracia undefiniert :) staci si domysliet dosledky undefined ist undefiniert :)

Avatar

Autor komentáře: pivko

Datum vložení: 3.3.2006 18:52:54

pozvu na pivko toho, kdo mi napise kod, ktery kdyz napisu napr. www.neco.html?kw=klicove+slovo mi vrati html stranku jejimz obsahem budou vysledky naseptavace seznamu :o)

Avatar

Autor komentáře: Tadeáš Bilka

Datum vložení: 4.3.2006 16:52:16

Dalo mi to trošku práce, ale když zkusíš tuhle url: http://suggest.fulltext.seznam.cz/?dict=fulltext&phrase=TVUJ_KUS_SLOVA&encoding=iso-8859-2&response_encoding=iso-8859-2 tak ti seznam vrátí to, co později dál vyhodnocuje v javascriptu. Teoreticky si to můžeš nějak přepracovat. A možná si budeš muset pohrát s tím kódováním. Já sem to nezkoumal uvnitř kódu, jen sem sledoval data na síti. tadeasbilka@seznam.cz / Česká Lípa:-)

Avatar

Autor komentáře: Dusan

Datum vložení: 7.10.2006 15:30:19

porovnej http://www.seznam.cz/jsSuggestFulltext?dict=fulltext&phrase=nas&encoding=utf-8&response_encoding=utf-8 a tohle http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&qu=nas

Avatar

Autor komentáře: Aleš

Datum vložení: 10.4.2007 1:01:43

Uz se tady pulku dne delam s ruznejma suggestama.. hlavne kvuli ceskymu kodovani.. a tak me trochu zklamalo, ze tenhle kod vlastne moc nefunguje.. ani demo, ani to co jsem si prepsal.. vzdy jen prazdny ramecek.. kdepak se stala chyba?

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.4.2007 13:36:20

Chyba může být v tom, že Google změnil své rozhraní či blokuje vnější dotazy a podobně. To si můžete sám ověřit. Další možností je, že jednoduše neumíte číst. V článku je výslovně uvedeno, že tato technologická demonstrace je funkční pouze v nezabezpečeném MSIE, eventuálně v každém prohlížeči, který zvládá potřebné metody XMLHttpRequest a umožňuje zrušit určitá bezpečnostní omezení. Workaround pro tento problém je v článku rovněž odkazován.

Avatar

Autor komentáře: Roman

Datum vložení: 3.1.2008 18:40:08

Zde jsou nějaké informace o našeptávači seznamu... http://www.pc-guru.cz/naseptavac

Avatar

Autor komentáře: JiriZ

Datum vložení: 18.2.2009 11:45:08

Dobry den, v článku jste to jen nakousnul. Jak by se dal vyřešit ten pohyb v našeptávači šipkami?

Zpět na článek | Úvodní stránka Interval.cz