| | |
| Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
Autor | Správa |
---|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 |
Pomocou AJAXu spustim daky vypocet a nasledne je spusteny casovac, ktory tiez pomocou AJAXu ziskava info o stave daneho vypoctu:
Kód: ... function getSize(id) { ajax('../update/jobs.php?id='+id+'&action=size','size'); } ... ajax('../update/jobs.php?id='+id+'&action=start','count'); timer = window.setInterval("getSize("+id+")",500); ...
V jobs.php mam nasledovny kod (je to len demonstracia): Kód: ... if ($action == 'start') { for ($i=0; $i<100 000; $i++) { session_start(); $_SESSION['count'] = $i; RobDacoIne(); session_write_close(); }
}
if ($action == 'size') echo $_SESSION['count']; ...
Tento sposob mi sice funguje, len problem je pomalost toho cyklu, co sposubuje to zapnutie a odoslanie session.
Ak ste nahodou nepochopili o co mi ide , tak mi ide o to, ako ziskat hodnotu nejakej premennej z beziaceho scriptu, pricom dana premenna sa postupne incrementuje v cykle, ktoreho dlzku nepoznam dopredu. Proste potrebujem nejakym sposobom vyniest hodnotu premennej, ktora bezi v cykle v beziacom scripte. Skusal som si danu hodnotu zapisovat do subora a z neho som si ju jednoducho precital, ale zas bola problem rychlost. Cyklus sa vyrazne tym zapisom spomalil. Ten cyklus sa vzdy vykona minimalne 75 000 krat. Cez db som to este neskusal, bo 75K querys sa mi zda byt vela
Potesi ma kazda dobra rada
|
|
Registrovaný: 22.12.07 Prihlásený: 24.02.13 Príspevky: 227 Témy: 30 |
Robíš chybu, keď zahájuješ SESSION v cykle, urob to pred a nebude ju musieť tak veľa krát spúšťať.
_________________ ... no tak tu preistotu nenapíšem nič ... |
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 16:07 | |
|
Lenze zapis do session sa neuzavrie skor ako skonci beh scriptu. Aby som session uzavrel, tak musim pouzit session_write_close. Ale pre dalsie pouzite session ich musim zas nastartovat. Tak preto som to dal pre skusku tak, ale je to velmi pomale
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 12.08.2009 16:10 | |
|
session_write_close nepouzivaj, je to zbytocne. Nechapem ale, preco tam mas ten blaznivy cyklus, ked premenna $_SESSION['count'] sa ti furt len prepisuje, takze nakoniec tam mas aj tak len 100000.
|
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 16:15 | |
|
Ďuri píše: session_write_close nepouzivaj, je to zbytocne. Nechapem ale, preco tam mas ten blaznivy cyklus, ked premenna $_SESSION['count'] sa ti furt len prepisuje, takze nakoniec tam mas aj tak len 100000.
To bola len demonstracia. Ten cyklus neviem ako bude dlhy - ide o zlozity proces vypoctu, ktory prebieha v cykle WHILE. Do tej premennej $_SESSION['count'] si zapisujem udajo tom, ako daleko je vypocet. Ked to session_write_close nepouzijem, tak pri zavolani ajaxu pre ziskanie hodnoty COUNT sa mi vrati odpoved az po skonci behu toho scriptu, co mi je uz zbytocne.
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
ako vraví antivir: session_start daj na začiatok, nie uprostred cyklu ...
|
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 16:24 | |
|
Tominator píše: ako vraví antivir: session_start daj na začiatok, nie uprostred cyklu ...
Uz sa budem opakovat: session sa neuzavrie skor ako sa dokonci beh scriptu. Ten script bezi cca 50 - 80 sekund.
Ja sa snazim ziskat hodnotu z beziaceho scriptu a z premennej COUNT v cykle. Bez pouzitia session_start a session_write_close to proste nejde. Budem rad aj nad inym riesenim - nemusi to byt cez session
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
session_write_close() odstran a session_start(); daj pred ten cyklus. A ine riesenia, este stale nechapem co tym chces celym dosiahnut
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Dosiahnut tym chce to, ze uzivatel bude vidiet priebeh (kolko uz spracoval a kolko ostava)
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 16:43 | |
|
Presne tak ako pise GoodWill, chcem zistit a ukazat stav
|
|
Registrovaný: 22.12.07 Prihlásený: 24.02.13 Príspevky: 227 Témy: 30 |
Skús to urobiť tak, že v cykle ktorý sa opakuje veľa krát bude zabudovaná funkcia ECHO ($i); ktorá vlastne pracuje ako odozva pre AJAX volanie čo prebieha každú sekundu.
_________________ ... no tak tu preistotu nenapíšem nič ... |
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 16:57 | |
|
antivir píše: Skús to urobiť tak, že v cykle ktorý sa opakuje veľa krát bude zabudovaná funkcia ECHO ($i); ktorá vlastne pracuje ako odozva pre AJAX volanie čo prebieha každú sekundu.
Skusal a nefunguje, lebo ajax caka na odpoved + header. To vsetko je poslane az na konci scriptu. Ked som to spravil tym sposobom, tak vsetky odpovede sa mi vratili az po skonceni vypoctu.
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
Hm, zapisovat to do suboru asi tiez nebude extra rychle,ze? A zapis do DB ? V podstate by tam stacil jeden UPDATE
UPDATE tabulka SET aktual=$count WHERE nazov=nieco
a potom zistis to cez
SELECT aktual FROM tabulka WHERE nazov=nieco
Bolo by to pomale?
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
podľa mňa SESSION by bolo 4x rýchlejšie
|
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 17:24 | |
|
Blackshadow píše: Hm, zapisovat to do suboru asi tiez nebude extra rychle,ze? A zapis do DB ? V podstate by tam stacil jeden UPDATE UPDATE tabulka SET aktual=$count WHERE nazov=nieco
a potom zistis to cez SELECT aktual FROM tabulka WHERE nazov=nieco
Bolo by to pomale?
Do suboru je to hrozne pomale a zapis do db? Nad tym som tiez rozmyslal, ale bolo by to velmi velke mnozstvo dotazov. Takze by to nebolo asi tiez moc efektivne. Keby sa to dalo nejak do cache, ale jednoznacne session su asi najrychlejsie, len ten moj sposob zrovna nie
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 12.08.2009 17:26 | |
|
A cookies? Asi nie, co?
|
|
Registrovaný: 22.12.07 Prihlásený: 24.02.13 Príspevky: 227 Témy: 30 |
Duri,cookies sa uložia az po refreshnutí stránky.
_________________ ... no tak tu preistotu nenapíšem nič ... |
|
Registrovaný: 11.08.09 Prihlásený: 30.04.12 Príspevky: 22 Témy: 4 | Napísal autor témy Jojko001: 12.08.2009 20:35 | |
|
Presne tak, cookies neprichadzaju do uvahy.
Ok, chalani, dakujem za snahu, ale sa nam to asi nepodari vyriesit - co uz, bude to teda bez toho ukazovatela priebehu.
Dik vsetkym este raz za nazor a postreh ;-)
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
Ako ja tu nevidím iné riešenie, lebo ak musíš vypínať a zapínať session, tak to inak nevymyslíš. Ostatné metódy sú pomalšie
|
|
| Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| PHP premenna v PHP, ASP | 17 | 688 | 27.09.2012 21:16 stenley | | php premenna v JavaScripte v JavaScript, VBScript, Ajax | 9 | 928 | 10.08.2011 19:24 kudzo3 | | php fusion- prihlaseny uzivatel=premenna v Redakčné systémy | 2 | 717 | 25.02.2009 11:09 mokus | | time() v cykle v PHP, ASP | 16 | 440 | 08.03.2016 10:26 neopagan | | [C] Citanie integeru v cykle v Assembler, C, C++, Pascal, Java | 14 | 501 | 15.11.2014 18:28 BX | | premenna v JavaScript, VBScript, Ajax | 10 | 965 | 31.07.2008 17:35 chrono | | Premenná v PHP, ASP | 7 | 633 | 24.08.2008 16:15 p360t | | Premenna (int) v Assembler, C, C++, Pascal, Java | 4 | 466 | 30.11.2010 12:54 capricorn7 | | Realna premenna v Delphi, Visual Basic | 1 | 583 | 06.11.2009 21:36 Fico | | OOP, premenna v PHP, ASP | 1 | 621 | 26.10.2009 21:44 rooobertek | | Najväčia premenná v PHP, ASP | 8 | 438 | 16.02.2010 20:48 janik366 | | TEXTAREA a premenna v PHP, ASP | 3 | 382 | 13.03.2008 10:35 Blackshadow | | Nevyuzita premenna C v Assembler, C, C++, Pascal, Java | 7 | 494 | 05.04.2017 7:14 17mark | | premenna do iframe v PHP, ASP | 2 | 241 | 17.11.2013 11:11 shaggy | | premenna v url v JavaScript, VBScript, Ajax | 5 | 597 | 07.11.2009 11:50 johny694 | | premenna a switch v PHP, ASP | 2 | 406 | 07.01.2010 9:40 tyr |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|