Ajax呈指数级增长,大量请求阻塞服务器 - JQUERY

时间:2014-06-13 06:14:40

标签: jquery ajax

我知道问题所在,但我不知道解决方案。

我有4个文件可以说。 index.php文件,ajax.php,more-ajax.php文件和我的custom.js文件。

在我的索引文件中,我有一个<div id="content"></div>元素,它将从ajax.php文件中加载内容。现在让我们在这个ajax.php文件中说我有以下<div id="moreContent"></div>现在我的custom.js文件中我在index.php和ajax.php文件中都包含以下jquery代码:

$(document).ready(function(){

     $("#select-menu").change(function(){
          $("#content").load('ajax.php');
     });

     $("#select-menu-two").change(function(){
          $("#moreContent").load('more-ajax.php');
     });

});

现在,这可行,但我可以看到我正在进行的每个调用一遍又一遍地调用custom.js文件,导致请求呈指数级增长。解决这个问题的方法是从ajax.php中删除custom.js。但是......然后#select-menu-two的第二个ajax函数不再有效,我无法从more-ajax.php加载内容。

有更好的方法吗?我可以看一下代码的例子吗?

谢谢, SC

1 个答案:

答案 0 :(得分:1)

首先删除先前添加的事件处理程序,避免为元素添加多个类似的事件处理程序:

$(document).ready(function(){
     $("#select-menu").off('change');
     $("#select-menu").change(function(){
          $("#content").load('ajax.php');
     });

     $("#select-menu-two").off('change');
     $("#select-menu-two").change(function(){
          $("#moreContent").load('more-ajax.php');
     });

});