Autor Zpráva
pfemir
Profil
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
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
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
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
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
_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
pfemirale 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
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ů.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: