每1秒调用jQuery ajax是否安全

时间:2013-12-12 16:12:14

标签: javascript php jquery ajax json

我有一个php文件,它会生成json,其中包括新年前夕和某些生日的倒计时秒数。但我希望倒计时每隔一秒就会改变一次。如果我将setTimeout(1000)设置为我的ajax调用函数,它是否安全(它会使服务器超载)吗? 什么是通过jQuery实现1秒JSON调用的最佳方法? 谢谢

6 个答案:

答案 0 :(得分:5)

而不是使用请求重载服务器(考虑到上下文,您可能会有许多用户同时执行许多请求与您的常量回调相关联),例如,在第二天将所有数据一次性获取,并仅在javascript中处理生日

我在那里使用的唯一Ajax部分是每小时或每天加载一次生日,以防你有一个真正大肆宣传浏览器的用户。

答案 1 :(得分:2)

服务器上的负载取决于:

  1. 每次调用php时所做的工作量 和
  2. 您期望的用户数
  3. 根据服务器的运行情况,您可以将倒计时逻辑移动到客户端javascript中,服务器只需计算初始值。然后,您可以在javascript中使用计时器每秒更新一次,计算当前时间与起始值之间的差异。

答案 2 :(得分:2)

取决于您的服务器以及您的PHP端点的优化程度......这是一个非常有条件的问题。

然而,对于你正在做的事情,我也建议从JS做这一切..即使有生日,我会在标记中设置一个JSON对象,记录所有生日,然后你可以在客户端做到这一切。 ..也许每5-10分钟拨打一次可能添加的新生日...取决于你的申请是什么。

答案 3 :(得分:1)

我使用了setInterval,并检查剩余时间是否等于零。然后我重新运行ajax函数。

谢谢,所有:)毕竟你是有帮助的;)

答案 4 :(得分:0)

如果我理解,您希望每秒呼叫您的服务器以更新您的时间。

不能只是:

  1. 致电您的服务器以获取实际时间
  2. 列出第2项 - 使用JS 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
    });
});

演示:http://jsfiddle.net/tqyj4/436/