2016-11-08 105 views
0

是否有無論如何運行/觸發/從服務器端(PHP)調用JavaScript(客戶端)?PHP - 從服務器端調用JavaScript

如果我把它從瀏覽器,我可以運行的JavaScript(當然,因爲它的客戶端),而不是從服務器端/郵差(我不知道是否有任何?)

function validate_answer($p) { 
?> 

<script> 
    $.ajax({ url: '/validate_time.php', 
    data: {'action': 'test'}, 
    type: 'post', 
    timeout:5000 
    }); 
</script> 

<?php 

}

我想用這種方式的原因,因爲在PHP中,沒有像javascript那樣的setTimeout之類的函數。

謝謝你們

編輯

好了,這裏的東西。 我創建了一個超時的遊戲,每當遊戲開始時,它都會有一個時間限制(例如10分鐘)。我需要一個功能來做到這一點,不幸的是,它不能通過瀏覽器訪問(它就像一個Web服務)。我嘗試過使用睡眠,但這不是我想要的。

+0

你需要什麼? –

+0

你可以使用PHP睡眠 –

+0

嗨@u_mulder,正如我上面所說,我需要它,因爲在PHP中沒有像settimeout(javascript)這樣的事情。睡眠不會像settimeout一樣。它不會執行其他的東西,直到它醒來。 – Webster

回答

1

你不能在服務器端運行javascript。如果你想獲得超時的效果,而阻礙了你的主腳本,你可以調用URL以這樣的參數:

function validate_answer($p) { 

    $ms_delay = 5000; 

    file_get_contents('http://www.yoursite.com/validate_time.php?action=test&delay='.$ms_delay) 

} 

,然後在該文件的開頭validate_time.php做到這一點:

sleep($_GET['delay']/1000) 

雖然不是很優雅。

1

PHP是單線程的,通常PHP專注於HTTP請求週期,所以這可能會很棘手,以允許超時運行代碼,可能在請求完成後。

我建議你看看Gearman作爲將工作委託給其他PHP進程的解決方案。

+0

嗨,我會嘗試它,並會更新結果。謝謝 :) – Webster