![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 6 Dołączył: 20.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hej, nie mam pomysłu jak rozwiązać zachciankę klienta. Wymyślił sobie, że chce ubijać procesy php poziomu aplikacji (stronie serwera). Tzn, jeżeli długo ładuje mu się jakaś podstrona, lub żądanie ajax, to chce wyskakujący modal z opcją "kill process". I wtedy zabijam request i mogę wykonać inny. Ma ktoś pomysł jak to rozwiązać?
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W przypadku strony to nie wiem jak zrobisz wyskakujacy modal bo dopoki strona sie nie zaladuje to i modal sie nie zaladuje raczej
![]() W przypadku ajax to masz raczej ubic ajax a nie php, a aktualnie chodzacy ajax to przeciez masz w js ![]() ps: i taka drobna dygresja na koniec: moze zamiast robic zachciewajke klienta, to moze warto by poprawic kod, ktory jest uruchamiany przez ajax? Bo skoro ajax wykonuje sie tak dlugo, ze az klient sie niecierpliwi, to moze to wina zle napisanego kodu? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 6 Dołączył: 20.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Do małej dygresji. To jest nowy projekt, dopiero powstaje. Ta funkcjonalność to zachcianka klienta po doświadczeniach z wcześniejszym CRM-em.
Ajax zabije, ale i tak idzie żądanie na serwer i trwa dopóki się nie zakończy się. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To powiedz klientowi ze funkcjonalnosc jest gotowa, a sam nie doposc do tak nieoptymalnych skryptow i klient nie zauwazy
![]() Moze to pomoze http://stackoverflow.com/questions/1652420...ancelled-closed -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 6 Dołączył: 20.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie ta ranga projektu i klienta.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ustaw timeout dla tego konkretnego żądania. Killowanie procesu to nie jest dobry pomysł.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 556 Pomógł: 40 Dołączył: 20.07.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ajax zabije, ale i tak idzie żądanie na serwer i trwa dopóki się nie zakończy się. teoretycznie można ustawić pułapkę czasową i jak przekroczy limit wtedy exit, to samo na stronie, ale wyobrażam sobie jakiego to burdelu narobi w kodzie, kontrola nad tym też jest dużym znakiem zapytania btw przy CRM składniki strony w większości przypadków mogą być wczytywane ajaxem, aplikacje zamknięte bardzo ładnie można rozwiązać frontedowo by wyeliminować wiekszośc takich czkawek, widoki php wtedy zubaża się do minimum ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Dalej nie rozumiem po co to skoro php ma "max execution time", ustaw jakiś sensowny czas i samo będzie zdychało.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 148 Pomógł: 14 Dołączył: 23.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli żądanie musi wykonywać się długo to może warto rozważyć napisanie daemona działającego w tle i wykonującego te zadania, aktualizującego postęp, a w głównej aplikacji zrobić "jedynie" tworzenia zadań dla daemona, sprawdzanie ich stanu, powiadamianie użytkownika o zakończonych pracach. W aplikacji nad która aktualnie pracują właśnie w ten sposób radzimy sobie z długim czasem oczekiwania na odpowiedź.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Na serwerze musisz skonfigurować opcję, która ubija proces jeśli przeglądarka ubije requesta.
Od tego zacznij ![]() http://www.php.net/manual/en/function.ignore-user-abort.php i to: http://nl3.php.net/manual/en/function.connection-aborted.php Ten post edytował maly_swd 1.03.2017, 11:05:11 -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@maly_swd moj drugi post w tym temacie odnosi sie wlasnie do rzeczy, ktore podales
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
@Nospor: Faktycznie, uznałem to co wpisałeś, że to część Twojej stopki
![]() -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 14:08 |