我有一个php文件,它生成新年前夕和一些生日倒计时秒的json。但我希望倒计时每一秒都改变一次。如果我将Timeout(1000)设置为ajax调用函数,它安全吗(会使服务器过载吗)?通过jQuery实现1秒JSON调用的最佳方式是什么?感谢
不要用请求重载服务器(考虑到上下文,可能会有许多用户同时处理许多请求,并与常量回调相结合),例如,在第二天一次获取所有数据,并仅用javascript处理生日。
我在其中使用的唯一Ajax部分是每小时或每天加载一次更多的生日,以防你有一个非常炒作的用户打开浏览器。
服务器上的负载取决于:
- 每次调用php时所做的工作量以及
- 您期望的用户数量
根据服务器的操作,您很可能能够将倒计时逻辑移动到客户端javascript中,服务器只计算初始值。然后,您可以使用javascript中的计时器每秒更新一次,计算当前时间和起始值之间的差值。
取决于您的服务器以及PHP端点的优化程度……这是一个非常有条件的问题。
然而,对于你所做的,我也建议你从JS中完成。。即使是生日,我也会在标记中设置一个JSON对象,其中包含记录的所有生日,然后您就可以在客户端完成所有操作。。。对于可能添加的任何新生日,可能每隔5-10分钟调用ajax。。。取决于您的应用程序。
我使用了setInterval,并检查剩余时间是否等于零。然后我重新运行ajax函数。
谢谢大家:)毕竟你们很有帮助;)
如果我理解的话,您希望每秒调用服务器来更新您的时间。
你不能只是:
- 致电服务器获取实际时间
- 列表项2-使用JS
setInterval(functionIncrementAndUpdateDate, 1000);
进行处理
您可以使用Keith Wood的倒计时计时器:http://keith-wood.name/countdown.html
它非常容易使用,而且不需要AJAX。你所要做的就是包括插件文件并写:
<div id="timer"></div>
$(document).ready(function() {
$('#timer').countdown({
until: '<?php echo date("h:i:s"); ?>' // change this to New Year or a Birthday from DB
});
});
演示:http://jsfiddle.net/tqyj4/436/