2013-05-04 114 views
1

我是php中的新手。我現在有睡眠功能的問題,那就是,我有一個簡單sleep.php文件是這樣的: <?php echo date('Y-m-d H:i:s'); sleep(5); ?>使用sleep()函數的php文件不能同時運行

當我在2個標籤同時打這個文件,第一個執行,讓這樣的結果: 2013年5月4日10時06分24秒
但第二個必須等待第一個執行所完全然後給出結果:2013年5月4日10時06分29秒

我的問題是爲什麼他們不能同時執行?這是PHP的行動或因爲網絡服務或其他。我正在運行nginx 1.3.0

在此先感謝!

+0

在php.ini中查看session.auto_start是否打開。它看起來像一個會話鎖定問題給我。 – cleong 2013-05-04 05:44:51

+0

我試過了,但那不正確。結果相同。我認爲這不是PHP的問題,這是關於Web服務問題(Nginx)。無論如何,非常感謝,朋友:) – 2013-05-04 07:35:37

回答

0

我認爲這是一種瀏覽器行爲。實際上,你不能同時執行它們,而且其中一個執行得更早。在第一次執行時,瀏覽器會爲您打開會話,當其他執行程序收到時,瀏覽器會感覺到它在執行時具有相同的文件名,直到第一次執行完成,然後開始第二次執行同一文件。如果您想同時在兩個選項卡中看到您的echo語句的執行情況,可以將它們命名爲兩個不同的文件名,並在同一瀏覽器中執行它們,或者在兩個不同的瀏覽器中執行一個文件。在這兩種情況下,你都會得到你所期望的。

+0

你是正確的命名他們在2個不同的文件名。我嘗試過,對此毫無疑問。實際上,當我試圖在兩臺不同的計算機上打開我的sleep.php時,它們可以同時運行。我仍然懷疑這是瀏覽器行爲還是nginx問題。太奇怪了! – 2013-05-04 07:38:33

+0

@imnobody,它是瀏覽器的行爲。其實這是因爲,在瀏覽器中啓用了Cookie。如果你禁用cookie,那麼它會完全同時執行它們。 – Amir 2013-05-04 07:47:33

+0

你是對的,朋友!我使用curl命令測試它。非常感謝,埃米爾! – 2013-05-06 04:35:41