Время выполнения кода в Javascript PHP

0

У меня есть веб-приложение в PHP и Javascript, где я хочу применить генерацию вопросов по времени. У меня есть предустановленный код, который будет выполнен в определенное время, которое сгенерирует вопрос.

Теперь я думаю, что как я могу применить это. Вот некоторые сведения о сети

  1. Веб работает на сервере Wamp, и почти 100 пользователей регулярно его используют (каждый день). Они заходят на сайт два раза между 9-11 утра и 2-6 вечера.
  2. Время глагола вопроса должно быть в 4 часа.

Теперь я могу использовать объект SetTimeOut и Javascript Date для достижения желаемой функциональности: здесь

    function checkVotingQuestionTime()
    {
     var currentTime = new Date();

     if(currentTime.getHours() >= 16 && currentTime.getHours() < 23)//check the time from user OS
     {
            checkVoteQuestionGenerated();
     }
    }
    function checkVoteQuestionGenerated(){

    //query to php check question exists
    //if no 
    //then generate question

}

И зарегистрируйте его на событии готовности документа на главной странице (после входа в систему). Этот код будет открыт для всех пользователей.

$jq(document).ready(function() {
setInterval(checkVotingQuestionTime, 60000);
}

Как представляется, это не выполнимый код, потому что

  1. Он будет запускаться от каждого клиента (установить таймаут и сервер регулярно, и если я также получаю время от сервера, чем он чаще всего попадает на сервер)
  2. Пользователь может изменить системное время для запуска над кодом.
  3. Множественный вопрос может быть сгенерирован, если два клиента одновременно проверяют, что вопрос не сгенерирован, поэтому сгенерируйте вопрос.

Итак, как я могу контролировать вышеуказанные ограничения или есть ли другое подходящее решение?

  • 0
    Измените свой Javascript на скрипт опроса, который отправляет часовой пояс браузера на сервер и запрашивает вопрос с сервера, но сервер предоставляет вопрос только в 16:00.
  • 0
    но каждый раз просить о времени - плохая идея. как я уже говорил, есть 100 клиентов, которые будут постоянно запрашивать сервер.
Показать ещё 2 комментария
Теги:

1 ответ

0

Наличие 100 клиентов опроса сервера каждые несколько минут не имеет большого значения. Каждый раз, когда они открывают страницу на вашем веб-сайте, которая фактически производит опрос сервера. Поэтому перенос проверки даты на php на стороне сервера является лучшим решением для того, что вы в настоящее время настроили.

Если вам не нравится идея опроса клиента сервером время от времени по эстетическим соображениям (и я могу это оценить), например, вы хотите, чтобы вопрос был обновлен в 16:00 на точке, вы могли бы посмотреть в использование сокетов. Это, в сущности, означает, что клиент слушает любые изменения, отправленные с сервера, без необходимости опроса и, при необходимости, обновления.

Socket.io прост в использовании, но не самый простой, когда речь идет о взаимодействии с php. Я не знаю, знакомы ли вы с Node.js, но здесь небольшая дискуссия о других сокетах и php:

Каков наилучший способ использования веб-сайтов вместе с PHP и MySQL-скриптами?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню