pot rula un fișier .php în fundal?

Aici,

La înregistrarea utilizatorilor importesc o mulțime de informații de la serviciile terță parte,

dar problema este că pagina ia multe pentru a încărca, există o modalitate de a rula acest proces "import" în fundal? (astfel încât utilizatorul nu trebuie să aștepte atât de mult pentru a vedea pagina și, probabil, la reîmprospătarea următoare, importurile vor fi terminate)

Mulțumiri

0
@LoneWOLFs da, dar problema este că dacă utilizatorul închide ajax, atunci procesul este anulat
adăugat autor Toni Michel Caubet, sursa
Gândește-te cu voce tare ... Puteți rula un fișier PHP pe server prin cron, spune la fiecare 5 minute, care verifică dacă un utilizator nou este înregistrat. Dacă da, poate iniția procesul de import și după finalizarea procesului, marchează "completă" în coloana db. Puteți citi acest lucru și puteți afișa corespunzător informațiile.
adăugat autor web-nomad, sursa
Au u luat în considerare obținerea acestor informații prin apelurile ajax, prin urmare, rularea instantanee a paginii și afișarea unui încărcător grațios în timp ce informațiile se încarcă?
adăugat autor LoneWOLFs, sursa

2 răspunsuri

Trebuie să setați o sarcină cron (dacă executați Linux) care execută o comandă curl pentru a accesa un script PHP (exterioară, cum ar fi "curl http://domain.com/php/something.php ) sau doar executând o comandă PHP care să indice un fișier intern.

Puteți face un programator care se execută în fiecare minut (adică timpul minim de execuție suportat de jobul cron) și execută un "bloc" al lucrării. Desigur, trebuie să setați PHP să sări peste limita de execuție de 30 de secunde utilizată în mod implicit.

0
adăugat

Trebuie să defalcați procesul de înregistrare în două etape: o pagină ușoară care se încarcă fără a aștepta finalizarea importului și un alt script care face ridicarea greoaie. Primul ar declansa al doilea cu AJAX. Rezultatul final ar fi o pagină "dvs. de înregistrare este în curs de procesare" care actualizează în mod corespunzător atunci când scriptul lucrătorului se termină.

Ar trebui să fiți atent să sunați ignore_user_abort la începutul scriptului lucrătorului, astfel încât procesul de înregistrare să nu se întrerupă dacă utilizatorul închide fereastra browserului în timp ce se află pe pagina de așteptare.

0
adăugat
ignore_user_abort va lăsa scriptul să ruleze chiar dacă a fost apelat în mod asincron și utilizatorii cloază fila MAIN?
adăugat autor Toni Michel Caubet, sursa
ok, deci da ...?
adăugat autor Toni Michel Caubet, sursa
da sigur că voi, eu sunt evaluarea soluții pentru acum. dacă aceasta funcționează, pare a fi cea mai ușoară pentru mine. thaks! va încerca să vă anunțe
adăugat autor Toni Michel Caubet, sursa
A funcționat, mulțumesc!
adăugat autor Toni Michel Caubet, sursa
@ToniMichelCaubet: În ceea ce privește serverul, nu există apeluri asincrone sau file principale. Toate acestea sunt valabile numai pentru perspectiva clientului.
adăugat autor Jon, sursa
@ToniMichelCaubet: Da, dar nu trebuie să luați cuvântul meu: încercați-l singur.
adăugat autor Jon, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT