Autor | Zpráva | ||
---|---|---|---|
pfemir Profil |
#1 · Zasláno: 2. 7. 2013, 16:07:03
Zdravím všechny,
už 3 dny se tady mořím s jedním problémem a už si nevím rady (podotýkám, že jsem začátečník). V javascriptu používám vícenásobné volání JQuery.get (vyčítám data ze 30-ti souborů) a mám problém, že se mi nevrátí všechny odpovědi. Vypreparovaný kód je následující: var den_Name = new Array("Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var od_datum = new Date(2013,6-1,1); var do_datum = new Date(2013,6-1,30); while (od_datum.valueOf() <= do_datum.valueOf()) { var _den = od_datum.getDate(); var _mesic = od_datum.getMonth() + 1; var fName = "/top/spotreba" + _den + "-" + _mesic + "-" + od_datum.getFullYear() + "-" + den_Name[od_datum.getDay()] + ".txt" od_datum.setTime(od_datum.getTime() + 86400000); var request = $.get(fName); request.success(function(tsv) { try { // ... zpracování hodnot } catch (e) { alert(e.message); } }); request.error(function() { alert('error'); }); } Chová se to tak, že se nejdříve odešle všech 30 požadavků na server a pak přichází odpovědi. Odpovědi se mi nevrací ve stejném pořadí v jakém byly odeslány žádosti, ale to je normální, to mi nevadí. Problém je, že se mi nevrátí všechny. Někdy se mi jich vrátí 20, ale někdy třeba jen 5, je to náhodné. Můžete mi někdo poradit co dělám špatně? |
||
pcmanik Profil |
#2 · Zasláno: 2. 7. 2013, 16:12:59
pfemir:
Pravdepodobne server zablokuje tak rýchly nápor dotazov, skús ich posielať v určitých časových rozostupoch, povedzme 200 milisekund poprípade viac. Ale celkovo mi ten počet príde príšerne veľký, zrejme robíš niečo zle. Načo potrebuješ 30 súborov? |
||
pfemir Profil |
#3 · Zasláno: 2. 7. 2013, 17:07:43
pcmanik:
To jsem si taky říkal, že to je možná velký nápor, ale ono dělá i když to krokuju v debugeru, tzn. posílám requesty po cca 1 sekundě. Jinak jsou to soubory s hodnotami spotřeby elektřiny a chci zobrazit spotřebu za jednotlivé dny v měsíci. |
||
_es Profil |
#4 · Zasláno: 2. 7. 2013, 17:25:40
pcmanik:
> posílám requesty po cca 1 sekundě. > Jinak jsou to soubory s hodnotami spotřeby elektřiny a chci zobrazit spotřebu za jednotlivé dny v měsíci. A prečo posielaš sekundové údaje so spotrebou za jednotivé dni? |
||
Joker Profil |
#5 · Zasláno: 2. 7. 2013, 18:15:40
pfemir:
Zkuste u těch co se nevracejí zjistit proč se nevracejí (jaká chyba nastane, od toho je ve zpracování ta část error, nebo to jde vykoukat v nástroji pro sledování síťové komunikace). Ale úspornější řešení by asi byl nějaký skript na serveru, který by vrátil všechna data najednou, pokud to jde. |
||
pfemir Profil |
#6 · Zasláno: 2. 7. 2013, 19:30:25
_es:
Nerozumím dotazu. Já žádné sekundové údaje se spotřebou neposílám. Já mám na serveru uložené soubory s naměřenou spotřebou, pro každý den jeden soubor. A na webu chci zobrazit měsíční sloupcový graf, kde na X-ose jsou jednotlivé dny v měsíci a na y-ose spotřeba za ten daný den. Prostě 30, resp. 31 sloupců. Takže potřebuji vyčíst těchto 30 hodnot z 30-ti souborů. Joker: To to je právě to, že nemůžu zjistit proč. Žádný error nenastane, částí request.error to ani jednou neprojde. A je to úplně náhodné, pokaždé se vrátí jiný počet a jiné soubory. Script na serveru je taky možnost, ale tomu jsem se chtěl (zatím) vyhnout. |
||
tiso Profil |
#7 · Zasláno: 2. 7. 2013, 20:59:08
pfemir „ale tomu jsem se chtěl (zatím) vyhnout.“
To je práve chyba. Zbytočne robíš 30-31 requestov, prenáša sa x súborov, keď ti stačí jeden request s jedným výsledkom v jednoducho spracovateľnej forme. |
||
pfemir Profil |
#8 · Zasláno: 2. 7. 2013, 22:40:31
tiso:
Chtěl jsem se tomu vyhnout, protože to neumím :-) Budu to muset nastudovat, budu asi muset proniknout do nějakého PHP, že? No a taky jsem nechtěl zatěžovat můj domácí "servřík", ale je otázka, co ho zatíží více, jestli ten script nebo 30 requestů. |
||
Časová prodleva: 11 let
|
0