Ahoj mám script a ten pracuje v cyklu se soubory a je casove narocny. Jak bez
AJAXu udělám aby kdyz se bude blizit limit se script znovu nacetl a pokracoval
tam kde skoncil? Nebo to jde jenom pomoci ajaxu? Předem děkuji za odpověď.
Fórum › PHP
Pokračovat i po vypršení limitu
Figa
Zkusil bych se zaprvé podívat, jestli by skript nešel zoptimalizovat tak, aby nepotřeboval tolik času. Můžeš zkusit pomocí set_time_limit()[1] nastavit, jak dlouho se ještě může skript vykonávat, či limit ouplně zrušit. Jinak se to opravdu bude muset dělat tak, že akci budeš muset přerušovat před překročením limitu a poté znovu obnovovat.
[1] http://php.net/set_time_limit
Figa
jak udelat to preruseni? Pomoci sleep(); ???
Kouknul ses vůbec, k čemu sleep()[1] je? ;o)
Na začátku skriptu zkontroluješ čas (time()[2]) a v každé iteraci cyklu (či po každé nároční operaci) zkontroluješ, jaký je čas teď. A pokud rozdíl bude větší než tebou určený limit (který by měl být menší než time_limit PHP), přerušíš cyklus, uložíš (do DB či podobně) si nějaké informace o tom, kde jsi skončil, spolud s identifikátorem (ID) operace a pošleš hlavičku Refresh[3]:
Refresh: 0; http://domena.tld/mujsuperaledlouhotrvajiciskript.php?id=$ID
Skript přijme znovu požadavek a zkontroluje $_GET['id']. Pokud je nastaveno na nějaké ID operace, co je uloženo v úložišti (DB...), pokračuje podle informací k operaci; jinak zahájí novou operaci. A tak pořád dokola, dokud operace není dokončena. Jedno možné řešení. AJAX do toho zaplétat můžeš, ale nemusíš.
[1] http://php.net/sleep
[2] http://php.net/time
[3] http://en.wikipedia.org/wiki/URL_redirection#Refresh_Meta_tag_and_HTTP_refresh_header
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[DB] limit - aleternativa nez limitu — založil w3q
Jak pokračovat dál ? — založil Ondra
Jak pokračovat s javou — založil Jan Klimeš
Vypršení Session — založil schimpanze
Vypršení Sessions — založil Yohaku
Moderátoři diskuze