2016-11-08 3 views
0

Есть ли в любом случае запуск/запуск/вызов javascript (клиентская сторона) со стороны сервера (PHP)?PHP - Позвонить javascript со стороны сервера

я могу запустить JavaScript, если я называю его из браузера (конечно, потому что клиент), но не с сервера на стороне/почтальона (Интересно, есть ли?)

function validate_answer($p) { 
?> 

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

<?php 

}

Причина, по которой я хочу использовать этот способ, потому что в PHP нет такой функции, как setTimeout, как javascript.

Спасибо ребята

EDIT

Хорошо, вот в чем дело. Я создаю игру с таймаутом, всякий раз, когда начинается игра, у нее будет timelimit (пример 10 минут). И мне нужна функция для этого, к сожалению, она недоступна через браузер (это похоже на веб-сервис). Я пробовал использовать сон, но это не то, что я хотел.

+0

Для чего это необходимо? –

+0

вы можете использовать php sleep –

+0

hi @u_mulder, как я сказал выше, мне это нужно, потому что в php нет такой вещи, как settimeout (javascript). Сон не такой же, как уступ. он не будет выполнять другие вещи, пока не проснется. – 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

Смежные вопросы