Javascript - długi czas wykonywania php + progressbar

0

Witam

Mam skrypt php który po zaimportowaniu np 1mb pliczku tekstowego potrafi przerabiać się np 2-3 minuty przez serwer no i cisza nie wchodzi w grę muszę wyświetlać jakiś postęp i tutaj nie bardzo wiem jak to uczynić.

  1. koncepcja:

już tak zorganizowałem sobie skrypt ze mam rozbij.php?folder_name=1111 i po wywołaniu tego wys wietlic jakiś prosty skrypt i co jakiś czas w echo dać takie coś:

echo '<script>update_progress(30);</script>';

niestety w tej koncepcji jest taki mały problem ze często tak się dzieje ze wszystko zostaje wywołane po całym wykonaniu skryptu php a nie w trakcie jego działania wydaje mi się też to bardzo nie eleganckie rozwiązanie

  1. koncepcja:

myślałem by z poziomu javascripta wywołać rozbij.php?folder_name=1111 zapisywać podczas jego działania plik: postep.txt i jednocześnie gdy będzie przerabiany ten skrypt wywoływać cyklicznie co np 3sekundy skrypt który będzie pobierał dokument tekstowy z postępem

0
  1. użyj funkcji buforowania wyjścia, a potem jak produkujesz te skrypty to co każdy wklepuj ob_flush(). po zamknięciu tagu script dorzucaj też komentarz html o długości 1024 znaki (z tego co pamiętam sprzed 5 lat - przeglądarki często dostając nowe znaki czekają dopóki nie będzie ich właśnie 1KB przynajmniej)

  2. można i tak, tylko nadawaj operacji jakiś unikalny id oczywiście, bo jak wiele razy to wykonasz na serwerze to będzie Ci się postęp nadpisywał. I lepiej jednak baza danych, przetrzymywanie danych w plikach to słaby pomysł, jeżeli nie korzystasz z bazy mysql/postgres/innej w projekcie to wystarczy np. sqlite do takich pierdółek

1 użytkowników online, w tym zalogowanych: 0, gości: 1