2016-11-08 17 views
0

サーバー側(PHP)からjavascript(クライアント側)を実行する/トリガーする/コールする方法はありますか?PHP - サーバー側からjavascriptを呼び出す

I私は、ブラウザからそれを呼び出す場合(もちろん、それはクライアントだから)JavaScriptを実行することができますが、ないサーバ側/郵便配達から(いずれかがありますかしら?)

function validate_answer($p) { 
?> 

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

<?php 

}

私はPHPで、javascriptのようなsetTimeoutのような機能がないので、私はこの方法を使いたい理由です。

みんなありがとう

EDIT

さて、ここでのものです。 タイムアウトのあるゲームを作成しています。ゲームが開始されるたびに、タイムリミット(10分の例)が表示されます。そして、私はそれを行うための関数が必要です。残念ながら、ブラウザ経由でアクセスすることはできません(Webサービスのようなものです)。私は睡眠を使ってみましたが、それは私が望んでいたものではありません。

+0

何が必要ですか? –

+0

あなたはphp sleepを使うことができました –

+0

こんにちは@u_mulder、上記のように、私はPHPのためにsettimeout(javascript)のようなものはないので必要です。睡眠はsettimeoutと同じではありません。目が覚めるまで他のものを実行しません。 – Webster

答えて

1

サーバー側でjavascriptを実行することはできません。あなたがメインのスクリプトを保持せず、タイムアウトの効果を取得したい場合は、このようなパラメータでURLを呼び出すことができます。ファイルの先頭にvalidate_time.phpで

function validate_answer($p) { 

    $ms_delay = 5000; 

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

} 

そして、次の操作を行います。

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

しかしそれほどエレガントではありませんが。

1

PHPはシングルスレッドであり、一般的にPHPはHTTPリクエストサイクルに重点を置いているため、リクエスト実行後にタイムアウトが発生してコードが実行される可能性があります。

Gearmanを他のPHPプロセスに委譲するためのソリューションとして考えてみることをお勧めします。

+0

こんにちは、私はそれを試し、結果を更新します。ありがとう:) – Webster

関連する問題