Autorius Tema: Pirma atidaro nuorodą, tada pradeda veikti skriptas  (Skaityta 667 kartus)

Neprisijungęs Tautvydas

  • Dalyvis
  • **
  • Įrašai: 427
  • Karma: +11/-0
    • Žiūrėti profilį
Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Įrašytas: 2013-03-04 21:07:32 pm »
Ar vien su PHP galima padaryti taip, kad įėjus tarkim skriptas.php pirma užkrauna, atspausdina " PALAUKITE" ir tada po poros sekundžių pradeda vygdyti tolimesnes reikiamas komandas?

Galima su refreshinimais padaryti ir pnš, tikriausia jquery, bet ar su PHP įmanoma? Pvz per wordpress'ą ten pluginų įkėlimuoe panašiai yra, pirma parašo kad siunčiama, tada atspausdina kai parsiuntė failą, tada vėl atspausdina kai ir įrašė viską.

Neprisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #1 Įrašytas: 2013-03-04 21:25:05 pm »
Tai ten jquery ir yra :D

Grynai su php - negali :)

Neprisijungęs Tautvydas

  • Dalyvis
  • **
  • Įrašai: 427
  • Karma: +11/-0
    • Žiūrėti profilį
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #2 Įrašytas: 2013-03-04 22:06:25 pm »
Na jei nesunku, duok kokį pavyzdį, kaip tai padaryti nesunkiai. JEIGU eina nesunkiai, kitu atveju apsieisiu :D

Neprisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #3 Įrašytas: 2013-03-04 22:11:34 pm »
Jei gali tiksliau parašyk ką tu nori padaryti ;)

Kaip pvz gali pasigooglinti jquery ajax form ar jquery ajax ;) Nėra sunku, bet... iš pradžių taip atrodys ;)

Manualai.lt Forumas

Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #3 Įrašytas: 2013-03-04 22:11:34 pm »

Neprisijungęs ganjabest

  • Dalyvis
  • **
  • Įrašai: 962
  • Karma: +41/-1
  • Povilas Stankevičius
    • Žiūrėti profilį
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #4 Įrašytas: 2013-03-05 00:48:44 am »
Jeigu tu nori kad atejus rodytu i puslapi palaukit ir daugiau nieko ir tik po kazkurio laiko uzkrautu kazka:

html
<meta http-equiv="refresh" content="sekundes;url=adresas">

php
<?php
header
'refresh: sekundes; url= adresas' );
?>


O jeigu nori kad paciame puslapyje kazka darant ivyktu uzdelsimas, tai butu jQuery:

<script>
setTimeout(function(){

 //Cia vykdomas norimas kodas praejus nustatytam laikui

}, 3000); //3000 milisekundes = 3 sekundes
</script>
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Neprisijungęs bendzaminas

  • Naujokas
  • *
  • Įrašai: 185
  • Karma: +11/-0
    • Žiūrėti profilį
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #5 Įrašytas: 2013-03-05 21:13:25 pm »
"užsleep'inti" php galima funkcija sleep(), žinoma, nežinau ar tiktų tokiam funckionalumui :)

http://php.net/manual/en/function.sleep.php

Neprisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #6 Įrašytas: 2013-03-05 21:19:43 pm »
"užsleep'inti" php galima funkcija sleep(), žinoma, nežinau ar tiktų tokiam funckionalumui :)

http://php.net/manual/en/function.sleep.php


Taip galima, tačiau sleep veikia kraunant. Jam reikia tokio kaip loading screen'o, o php čia netinka, nes jis tik uždelsia viso puslapio parodymą, o ne turinio atskleidimą krovimo metu :)

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7385
  • Karma: +226/-15
    • Žiūrėti profilį
    • mano CV
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #7 Įrašytas: 2013-03-13 02:12:29 am »
"užsleep'inti" php galima funkcija sleep(), žinoma, nežinau ar tiktų tokiam funckionalumui :)

http://php.net/manual/en/function.sleep.php


netiktu, nes sleepas yra php, kol php nebaige daarbo tol html nematysi jokio narsykleje, todel tai tik pailgins puslapio krovimosi laika, daugiau nieko is userio puses
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs vitalikaz

  • Dalyvis
  • **
  • Įrašai: 895
  • Karma: +59/-2
  • Tikėk kuo tiki
    • Žiūrėti profilį
    • blast.lt
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #8 Įrašytas: 2013-03-13 09:21:48 am »
netiktu, nes sleepas yra php, kol php nebaige daarbo tol html nematysi jokio narsykleje, todel tai tik pailgins puslapio krovimosi laika, daugiau nieko is userio puses


Output'o buferį galima flush'inti kaip tik nori. Plius gali nustatyti visokias default'ines reikšmes, kad ir iškarto siųsti output'ą naršyklei. Tik tas turi truputį įtakos perfomance'ui. Jeigu neklystu, WP visokių plugin'ų instaliavimai tokiu principu ir yra padaryti. Susijusių funkcijų sąrašas čia. Pvz.:
<?php

for ($i 0$i 100$i++):

  
printf("Yay! Doing %d...\n"$i);
  echo 
$i '<br />';

  
// cia flushinam
  
flush();
  
ob_flush();

  
// sleepinam
  
sleep(2);

endfor;

?>


Kas 2 sekundes išvedinės tuos skaičius :)
« Paskutinį kartą keitė: 2013-03-18 16:47:05 pm sukūrė vitalikaz »
BlaST
Serveriai.lt paslaugos su 50% nuolaida!
Blast.lt blogas

Neprisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #9 Įrašytas: 2013-03-13 11:37:36 am »
netiktu, nes sleepas yra php, kol php nebaige daarbo tol html nematysi jokio narsykleje, todel tai tik pailgins puslapio krovimosi laika, daugiau nieko is userio puses


Tu ir vėl neteisus. Output'o buferį galima flush'inti kaip tik nori. Plius gali nustatyti visokias default'ines reikšmes, kad ir iškarto siųsti output'ą naršyklei. Tik tas turi truputį įtakos perfomance'ui. Jeigu neklystu, WP visokių plugin'ų instaliavimai tokiu principu ir yra padaryti. Susijusių funkcijų sąrašas čia. Pvz.:
<?php

for ($i 0$i 100$i++):

  
printf("Yay! Doing %d...\n"$i);
  echo 
$i '<br />';

  
// cia flushinam
  
flush();
  
ob_flush();

  
// sleepinam
  
sleep(2);

endfor;

?>


Kas 2 sekundes išvedinės tuos skaičius :)


O dabar ir tu neteisus ;)

Jam reikia atidarius nuorodą, o ne iškart. Tai yra, jis turi pamatyti rezultatą, o tik tada kažkas įvykti. Tai su php yra neįmanoma.

Neprisijungęs vitalikaz

  • Dalyvis
  • **
  • Įrašai: 895
  • Karma: +59/-2
  • Tikėk kuo tiki
    • Žiūrėti profilį
    • blast.lt
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #10 Įrašytas: 2013-03-13 12:07:35 pm »
O dabar ir tu neteisus ;)

Jam reikia atidarius nuorodą, o ne iškart. Tai yra, jis turi pamatyti rezultatą, o tik tada kažkas įvykti. Tai su php yra neįmanoma.
Aš ne apie problemą, o apie Luko pasisakymą apie "html nematysi jokio naršyklėje". Bet ir sprendžiant iš autoriaus post'o, galima būtų taip ir padaryt:  išvedi palaukite, nuflushini buferį, sleepini ar ka ten darai, ir tada vykdai komandas kokias reikia. Nors šiuo atveju elegantiškesnis sprendimas aišku būtų ajax'as
BlaST
Serveriai.lt paslaugos su 50% nuolaida!
Blast.lt blogas

Neprisijungęs Tautvydas

  • Dalyvis
  • **
  • Įrašai: 427
  • Karma: +11/-0
    • Žiūrėti profilį
Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #11 Įrašytas: 2013-03-27 14:44:11 pm »
Opa, tai taip išeina, kad funkcija flush() ir padaro, ką aš klausiau ( paskaičius php.net aprašymą ) net be jquery.

tarkim:
<?php
echo " Kraunama...";
flush();
ob_flush();
sleep(10);
$suma=2+2;
echo 
$suma;
?>

Ir gausis, kad pirma parašys KRAUNAMA, o tik poto suskaičiuos ir atspausdins. Būtent to ir reikėjo.

BET
regis, tai neveikia. Tikriausiai reikia pakeisti php.ini nustatymus, o tai nebetkur ir betkam tėra galima, tai tikriausiai išties geriausia su jquery tai padaryti, bet vis dar nežinau kaip :D

Manualai.lt Forumas

Ats: Pirma atidaro nuorodą, tada pradeda veikti skriptas
« Atsakymas #11 Įrašytas: 2013-03-27 14:44:11 pm »