| Autor | Zpráva | ||
|---|---|---|---|
| anonymníí Profil * |
Ahoj,
chtěl bych se zeptat na radu, jak řešit co nejefektivněji našeptávání. Mám v databázi cca 6500 záznamů. Napadla mě asi nejjednodušší věc, která se nabízí, data si z DB vybrat, uložit do pole a dotazovat se na isset(session[index]). Ale nevím, jestli neexistuje i lepší řešení. AJAXem se dotazovat po každém stisku klávesy mi přijde strašně zdlouhavé, hlavně jeto moc dotazů (beru li v potaz, že člověk píše a k tomu ještě třeba dost rychle). Jak se toto řeší? Pardon, překlikl jsem s v kategorii, prosím o přesun do PHP. Děkuji. Moderátor Joker: Přesunul jsem
|
||
| aDAm Profil |
#2 · Zasláno: 9. 4. 2014, 10:39:56
třeba tak že neposíláš každý úder klávesnice ale dáš si tam timeout a třeba pokud uživatel 2sec nepíše tak pošleš dotaz na server.
|
||
| Str4wberry Profil |
#3 · Zasláno: 9. 4. 2014, 10:56:51
Další možnost je rozdělit si položky podle počátečních písmen, to máme průměrně 250 záznamů na jedno písmeno. Při zadání prvního písmena si těchto cca 250 záznamů předáte do JavaScriptu. A dál se už bude hledat na straně klienta, takže to další dotazy generovat nebude.
Bylo-li by 250 záznamů moc, můžete obdobný seznam stahovat až po zadání více písmen a do té doby nic nenašeptávat. |
||
| aDAm Profil |
#4 · Zasláno: 9. 4. 2014, 11:00:38
Mě by zajímalo jak to má udělané třeba google a jeho našeptávání adres. Přiřadil jsem si jeho našeptávač poli a sotva začnu psát tak už mě to sází tipy co by to asi mohlo být a přitom v konzoli není zaznamenán žáden request.
|
||
| Kajman Profil |
aDAm:
A nemáš tam jen díky prohlížeči historii vstupů do inputů se stejným jménem? Nebo používá websockety, nebo jak se to jmenuje. |
||
| aDAm Profil |
#6 · Zasláno: 9. 4. 2014, 11:22:31
jj viděl bych to asi na websockety. ale responze je neskutečně rychlá.
|
||
| peta Profil |
#7 · Zasláno: 9. 4. 2014, 13:09:51
* LIMIT - omezi pocet radku sql dotazu, treba 20 je takove pekne cislo
* Obvykle se vyhledava pri 2 a vice pismenech, pokud chces zobrazovat vsechny moznosti bez limitu * Muzes si stahnout na zacatku vysledky prvnich 10 radku pro kazde pismeno. Bez diakritiky je to 26 * 10 = 260 radku, 260 * 100 pismen na radek mas 26k, jako takovy mensi obrazek. |
||
|
Časová prodleva: 13 let
|
|||
0