$ .ajax对服务器有多大影响?

时间:2012-11-30 07:55:02

标签: jquery ajax get load

我正在重新加载(如果您更喜欢这个词,请刷新)我的网页每5分钟一次,但这对我来说已经很长时间了。我不知道用下面的代码重新加载页面会对服务器产生多大的影响,这只是我想知道的;如果我将间隔时间从5分钟更改为1秒,这对服务器有多大影响?它会降低服务器速度吗?我的网站每半小时有超过5位访问者,但更新后会有更多访问者。

$(document).ready(function() {


    setInterval(function() {
        $('#loading-page').show().html('<img src="images/animation-loading.gif" alt="" title="Reloading the page">');

        $.ajax({
            url: 'get/statistics',
            type: 'GET',

            success: function(s) {
                $("#load-statistics").html(s);
            },


            error: function() {
                $('#loading-page').show().html('<img src="images/exclamation-red.png" alt="" title="Couldn't reload page. Trying again soon">');
            }
        });
    }, 300e3);


});

提前致谢。

5 个答案:

答案 0 :(得分:2)

一个简单的答案是“5分钟= 300秒”,因此将间隔减少到1秒将使服务器加载300倍。

它会比这少一点,因为网络中可能存在一些浏览器限制和延迟等等,但无论如何都是实质性的。并考虑用户及其产生的流量。

1秒太极端,几乎不需要。你也可以假装它(就像一些计数器那样)来创建动态效果。

答案 1 :(得分:2)

您可以自己测试一下。试试这个:

var start = new Date().getTime();

$.ajax({
    url: 'get/statistics',
    type: 'GET',

    success: function(s) {

        var end = new Date().getTime();
        console.log('milliseconds passed', end - start);

        $("#load-statistics").html(s);
    }

});​

检查控制台的处理时间。然后,您可以根据您在控制台获得的10-20个采样时间的平均值来更改间隔时间。

答案 2 :(得分:1)

很可能取决于服务器端发生了什么。难道你不能与开发服务器端服务的开发人员交谈吗? 它还取决于并发浏览器将调用此服务的数量。 许多服务的设计目标是同时回答数百万次,但通常会调用多少次呼叫以及写入服务文档的频率。

我认为根据服务器应答时间和服务器负载(如果可以测量),可以按照自己的方式改变频率秒或分钟数。 您还可以测量自调用开始以来收到响应所花费的JavaScript时间。

答案 3 :(得分:1)

对于那个数字,即每半小时有5位访问者,我怀疑处理页面更新的服务器不应该有任何“困难”,假设每次更新都不是一个疯狂密集的漫长操作在服务器上。还有各种缓存或缓存机制,可以通过仅获取已更改的资源而不是重新生成未更改的资源来进一步提高性能。当负载增加,即每x期更多用户时,您可以投资调整应用程序和/或服务器。使用监控工具进行检查可能是一个开始。

答案 4 :(得分:1)

这将高度依赖于您的网页执行的操作。

另外,如上所述,1秒可能过于极端,特别是对于统计类型的页面,同时5分钟可能太慢而无用,当然这取决于您网站的内容/性质。

您的服务器负载将取决于请求频率以及并发用户数。

我想在此指出的是,在这种情况下,您可以使用服务器端“缓存”来显着降低服务器负载。根据页面名称判断,统计信息是服务器缓存的理想选择。因为它们不必100%准确,并且一旦生成,可以在接下来的两分钟(例如)左右。

因此,如果您缓存统计信息响应,则会为所有后续请求提供chached内容,从而减少服务器上的负载。如果正确的基础架构请求可能甚至无法到达您的服务器(例如:某些网络交换机可以缓存并返回内容)。

您必须根据服务器端技术找到合适的缓存机制。