我有一个php文件,它会生成json,其中包括新年前夕和某些生日的倒计时秒数。但我希望倒计时每隔一秒就会改变一次。如果我将setTimeout(1000)设置为我的ajax调用函数,它是否安全(它会使服务器超载)吗? 什么是通过jQuery实现1秒JSON调用的最佳方法? 谢谢
答案 0 :(得分:5)
而不是使用请求重载服务器(考虑到上下文,您可能会有许多用户同时执行许多请求与您的常量回调相关联),例如,在第二天将所有数据一次性获取,并仅在javascript中处理生日
我在那里使用的唯一Ajax部分是每小时或每天加载一次生日,以防你有一个真正大肆宣传浏览器的用户。
答案 1 :(得分:2)
服务器上的负载取决于:
根据服务器的运行情况,您可以将倒计时逻辑移动到客户端javascript中,服务器只需计算初始值。然后,您可以在javascript中使用计时器每秒更新一次,计算当前时间与起始值之间的差异。
答案 2 :(得分:2)
取决于您的服务器以及您的PHP端点的优化程度......这是一个非常有条件的问题。
然而,对于你正在做的事情,我也建议从JS做这一切..即使有生日,我会在标记中设置一个JSON对象,记录所有生日,然后你可以在客户端做到这一切。 ..也许每5-10分钟拨打一次可能添加的新生日...取决于你的申请是什么。
答案 3 :(得分:1)
我使用了setInterval,并检查剩余时间是否等于零。然后我重新运行ajax函数。
谢谢,所有:)毕竟你是有帮助的;)
答案 4 :(得分:0)
如果我理解,您希望每秒呼叫您的服务器以更新您的时间。
不能只是:
setInterval(functionIncrementAndUpdateDate, 1000);
进行处理?答案 5 :(得分:0)
你可以使用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
});
});