我有一个使用PHP和Javascript的Web应用程序,我想在其中应用基于时间的问题生成。我预先设置了将在特定时间执行的代码,这将生成问题。
现在,我正在考虑如何应用此功能。以下是有关网络的一些信息
现在,我可以使用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);
}
看来,这是不可行的代码,因为
那么我如何控制上述限制?还是有其他合适的解决方案可用?
答案 0 :(得分:0)
每隔几分钟让100个客户端轮询服务器不是什么大问题。每次他们在您的网站上打开一个实际上轮询服务器的页面时。因此,将日期检查移到服务器端的php上是当前设置的最佳解决方案。
如果您不喜欢让客户端出于美学原因不时地轮询服务器的想法(我可以理解),例如,您希望在16:00时刷新问题,您可以考虑使用套接字。实际上,这意味着客户端可以监听服务器发送的任何更改,而无需轮询它,并在必要时进行更新。
Socket.io易于使用,但在与php交互时却不是最简单的。我不知道您是否熟悉Node.js,但这是一些关于套接字和php的小讨论:
What is the best way to use websockets along with PHP and MySQL scripts?