![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ostatnio natrafiłem na kwestie stworzenia skryptu instalacyjnego w PHP do zainstalowania i skonfigurowania na serwerze jakiejś konkretnej aplikacji. Idea jest prosta skrypt całość wrzucamy na serwer, odpalamy powiedzmy "install.php" uzupełniamy ustawienia i klikamy "install". Od strony PHP jest to ogarnięte - robi wszystko co potrzeba. Sęk w tym, że zażyczono sobie do tego aby ten skrypt instalacyjny pokazywał postęp oraz statusy "jak idzie". Poczytałem trochę to tu to tam i wpadłem na pomysł aby wykorzystać do tego AJAX'a. Widzę to tak - strona otwiera połączenie poprzez ajax'a ze skryptem odpowiedzialnym za instalacje. Skrypt ten działa nieustannie aż do zakończenia wszelkich działań. W tym czasie po zakończeniu jakiś konkretnych kroków przekazuje dane do przeglądarki i JS, które mogą być przerobione. Odrobiłem lekcję u profesora Google ale nie znalazłem tego czego chciałem. Long polling tutaj to za mało, potrzebował bym wiedzy czy komuś udało się zrobić coś na styl techniki Comet pod AJAX'em... Czy jest to w ogóle możliwe? Czy komuś się to udało? (IMG:style_emoticons/default/smile.gif) Wiem, że dostępna jest taka opcja jako aplet JAVY ale dowalanie APLETU JAVY do skryptu instalacyjnego przekreśla kompatybilność itd... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
można jeszcze inaczej zrobić delikatnie na odczepnego... skrypt instalacyjny zapisuje gdzieś logi na temat postępu instalacji w jakiejś bazie danych - a choćby nawet w pliku tekstowym jeśli nie ma możliwości skorzystania z bazy danych lub w sqlite... oprócz skryptu instalacyjnego masz jeszcze jakiś prościutki skrypcik czytający tylko postęp instalacji i zwracający tylko tą wartość kończący działanie...
po uruchomieniu instalacji, przez ajax odpytujesz skrypt sprawdzający status instalacji z "logów" do tego przygotowanych - uzyskujesz odpowiedź to ją wyświetlasz... jeśli instalacja nie zakończona i odpowiedź była baaardzo szybko (powiedzmy od zapytania do odpowiedzi minęła tylko 1ms) to sobie odczekujesz jeszcze te powiedzmy 99ms i kolejne zapytanie ajax (chyba nie ma sensu sprawdzać częściej niż co 100ms - a moim zdaniem nie ma sensu sprawdzać częściej niż co sekundę ;p) - jeśli internet był wolny i sama odpowiedź trwała 3s to odrazu pytasz się po raz kolejny... gdy jedna z odpowiedzi będzie z logów, że instalacja zakończona to wyświetlasz 100% i już nie ma sensu wykonywać zapytania o stan instalacji - a nawet jeśli zapytasz to z logów odpowiedź dostaniesz że zakończona... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 14:45 |