[]
php ve sleep sorunsalı mı desem ne desem bilemedim şimdi
merhabalar php çocukları
sleep() fonksiyonuna işim düştü,
<?php
echo 'a' . "\n";
// Betik 10 saniye uyusun
sleep(10);
// uyandı !
echo 'b' . "\n";
?>
gibi bir kullanımda sayfanın gösterilmesi 10 sn sürüyor.
önce a yı ekrana basıp sonra 10 saniye uyumasından sonra b yi ekrana basması gerekir diye bir teorim var ama bu sekilde olmuyor malesef.
a yı da b yi de 10 sn geçtikten sonra ekrana basıyor. daha dogrusu öyle gözukuyor. bütün php dosyası sunucuda işlendikten sonra ekrana cıktı urettiginin farkındayım ama sleep sanki tam işe yaramıyor gibi geldi bana. baska bir yol öneren var mıdır acaba ?
sleep() fonksiyonuna işim düştü,
<?php
echo 'a' . "\n";
// Betik 10 saniye uyusun
sleep(10);
// uyandı !
echo 'b' . "\n";
?>
gibi bir kullanımda sayfanın gösterilmesi 10 sn sürüyor.
önce a yı ekrana basıp sonra 10 saniye uyumasından sonra b yi ekrana basması gerekir diye bir teorim var ama bu sekilde olmuyor malesef.
a yı da b yi de 10 sn geçtikten sonra ekrana basıyor. daha dogrusu öyle gözukuyor. bütün php dosyası sunucuda işlendikten sonra ekrana cıktı urettiginin farkındayım ama sleep sanki tam işe yaramıyor gibi geldi bana. baska bir yol öneren var mıdır acaba ?
div'i "display: none" ile gizli olarak getirip, javascript "setTimeout" ile 10 saniye sonra "display: block" kullanarak görünür yapabilirsin.
edit: senin de farkettiğin gibi "sleep" kullanarak içeriği sonradan gösterme gibi bir işlem yapamazsın. bu örnekteki gibi içerik manipülasyonlarını, sonradan yükleme, gizleme vs. gibi işlemleri css ve javascript kullanarak yapabilirsin.
edit: senin de farkettiğin gibi "sleep" kullanarak içeriği sonradan gösterme gibi bir işlem yapamazsın. bu örnekteki gibi içerik manipülasyonlarını, sonradan yükleme, gizleme vs. gibi işlemleri css ve javascript kullanarak yapabilirsin.
- pouze (13.02.14 11:16:42 ~ 11:22:01)
@pouze
yapacagım iş içerik gösterme ile ilgili olmayacak, database ilişkili bir işlem olacagı icin js veya css ile çözüm olmaz. lakin dediğin gibi içerik gösterme ile ilgili bir işlem olsaydı js ve css ile çözülürdü. ama yine de teşekkur ederim
yapacagım iş içerik gösterme ile ilgili olmayacak, database ilişkili bir işlem olacagı icin js veya css ile çözüm olmaz. lakin dediğin gibi içerik gösterme ile ilgili bir işlem olsaydı js ve css ile çözülürdü. ama yine de teşekkur ederim
- vadrigar (13.02.14 11:51:28)
tamam o zaman "ajax" kullanabilirsin. 10 saniye sonra "post" ettir, artık ne işlem yapıyor ise yapsın. cevabı alman gerekiyor ise gönderip, ekrana yazdırırsın.
direk sorunu yazabilme imkanın var ise yaz, daha çok çözüm odaklı bir cevap verebilirim belki. çünkü doğru anladıysam çok komplike bir işleme benzemiyor.
direk sorunu yazabilme imkanın var ise yaz, daha çok çözüm odaklı bir cevap verebilirim belki. çünkü doğru anladıysam çok komplike bir işleme benzemiyor.
- pouze (13.02.14 12:09:49)
bu işini görecektir :
<?php
echo 'bu bir<br>';
ob_end_flush();
flush();
sleep(5);
echo 'bu iki';
?>
<?php
echo 'bu bir<br>';
ob_end_flush();
flush();
sleep(5);
echo 'bu iki';
?>
- gecusan (13.02.14 12:19:11)
@gecusan
mantıklı gorunuyordu, denedim fakat istenilen gibi olmadı. sen denedin mi ?
mantıklı gorunuyordu, denedim fakat istenilen gibi olmadı. sen denedin mi ?
- vadrigar (13.02.14 12:29:25)
sürekli kullandığım kod, bende sorunsuz çalışıyor, php 5.3 apache üzerinde çalışıyor. browser chrome firefox ve safaride sorunsuz.
- gecusan (13.02.14 12:44:21)
ben calıstırdıgımda sayfa 5 saniye geç yuklendi ve ikisi aynı anda ekranda gozuktu.
benim istedigim:
ilki gozuksun, 5 saniye bekleyelim ikincisi gozuksun.
benim istedigim:
ilki gozuksun, 5 saniye bekleyelim ikincisi gozuksun.
- vadrigar (13.02.14 12:53:12)
evet aynen senin istediğin gibi çalışıyor, birinci echo yu yazıyor 5 saniye bekliyor ikinci echo yu yazıyor, sanırım senin php.ini ile birtakım sıkıntıların var. kodun başına şunları ekleyip dener misin ? :
@ini_set('zlib.output_compression',0);
@ini_set('implicit_flush',1);
@ob_end_clean();
set_time_limit(0);
@ini_set('zlib.output_compression',0);
@ini_set('implicit_flush',1);
@ob_end_clean();
set_time_limit(0);
- gecusan (13.02.14 12:59:27)
@gecusan
yok olmadı.
.ini dosyasını da değiştirdim. restart caktım, kasayı yan bile yatırdım. sonuc aynı.
başka bir yol deneyeceğim artık.
teşekkürler tüm yardımlar için.
yok olmadı.
.ini dosyasını da değiştirdim. restart caktım, kasayı yan bile yatırdım. sonuc aynı.
başka bir yol deneyeceğim artık.
teşekkürler tüm yardımlar için.
- vadrigar (13.02.14 15:54:28)
1