Autor Zpráva
XKrik
Profil
Ahojte,
již delší dobu se rozčiluju s odpočítáváním na stránkách : www.levneaukce.cz
JS : http://www.levneaukce.cz/js/refresh.js
Problémem je, že po určité době ( závisí na PC ) se začne prohlížeč sekat.
Celé to funguje tak, že každou sekundu, pomocí setInterval, se načte vzdálený XML soubor, který obsahuje data s časy. Soubor se rozparsuje a poskládá na stránku.
Celé je to navíc postavené na hlavu tím, že doba než se to začne sekat není vůbec dána počtem aukcí.
Předem díky za pomoc
AM_
Profil
Skript jsem nechal běžet pár minut a v paměti se (dle správce úloh Win) vůbec nerozrůstá, PC se nezpomaluje.
To, že doba, po které se skript začne "sekat", závisí na PC, je pochopitelné - velikost paměti, rychlost... ale možná to závisí i na prohlížeči a jeho implementaci JS.
vynalezce
Profil
<ot>

chybicka se vloudila (zobrazuje se na indexu)


Queries: 4 (0.00208306312561)
0.000766038894653 - Connect to mysql server
0.000113964080811 - SELECT `setting_name`,`setting_value` FROM `miu_setting` WHERE `setting_type` = '2' || `setting_type` = '1'
0.000731945037842 - SELECT * FROM miu_categories LEFT JOIN (SELECT c_id, if(COUNT(c_id) = NULL, 0, COUNT(c_id) ) AS c_soucet FROM miu_products LEFT JOIN miu_taxonomy ON prd_id = tx_item_id LEFT JOIN miu_categories ON c_id = tx_c_id WHERE( c_status = 1 AND prd_status >= 1 AND prd_current_time > '2009-10-18 14:43:01' AND prd_start_time < '2009-10-18 14:43:01' ) GROUP BY c_id) AS count ON miu_categories.c_id = count.c_id
0.000245094299316 - SELECT *,1 AS current FROM miu_products WHERE( prd_status >= 1 AND prd_current_time > '2009-10-18 14:43:01' ) GROUP BY prd_id ORDER BY prd_end_time DESC LIMIT 8;
0.000226020812988 - SELECT * FROM miu_products WHERE( prd_status >= 1 AND prd_start_time > '2009-10-18 14:43:01' ) GROUP BY prd_id ORDER BY prd_end_time DESC LIMIT 8;

</ot>
XKrik
Profil
Ano, ale jak vyřešit zasekávání scriptu?
_es
Profil
XKrik
každou sekundu, pomocí setInterval, se načte vzdálený XML soubor,

Problém asi nastáva, keď to každú sekundu nestíha.
xml je globálna premenná, takže ak sa to nestihne za sekundu, tak je prepísaná novým dotazom.

Naviac to vypisuje chybu:
Chyba: žiadny prvok sa nenašiel
Zdrojový súbor: http://www.levneaukce.cz/timer.xml
Riadok: 1


Takže to je asi treba spraviť nejako "normálnejšie".
XKrik
Profil
Vyřešeno, pokud to někoho zajímá:

xml.open("GET","/timer.xml",false);
vs.
xml.open("GET","/timer.xml",true);

U prvního není potřeba používat funkci onreadystatechange, avšak vždycky při čekání prohlížeč "sekne".
Takže xml.open s parametrem false nepoužívat!
Toto téma je uzamčeno. Odpověď nelze zaslat.