如何避免Ajax调用中的循环

时间:2018-08-30 10:32:09

标签: ajax

我有函数getData(),该函数进行ajax调用并检索JSON数据。成功时,我调用另一个函数marquee()。在结束事件的内部字幕上,我再次调用getData(),但是每次调用getData()时,它都会增加对提到文件data.php的请求,例如,第一次调用时调用一次,第二次调用它请求两次,然后两次变成4次,8次等等,如何避免这种情况?!

function getData()
{
  $.get('data.php).done(function(response)
{
var data = JSON.parse(response);
if(data.Direction == "left")
{
$(".marquee").html("<span data-direction='"+data.Direction+"'>"+data.Message+"</span>");
}else if(data.Direction == "right"){ 
$(".marquee").html("<span data- direction='"+data.Direction+"'>"+data.Message+"</span>");
}    
});
}

function marquee()
{
   $(".marquee").marquee({duration : 10000}).bind("finished",function()
  {
    getData(); 
  });
}

我希望我很清楚...欣赏每个答案。

1 个答案:

答案 0 :(得分:1)

每次调用选取框函数时,基本上都是在其上绑定一个完成的事件。在多个此类函数调用中,您将有重复的事件。在代码设置中,需要在绑定功能之前取消绑定功能。像

$(".marquee").marquee({duration : 10000}).unbind("finished",getData).bind("finished",getData)

理想情况下,您应该只绑定一次,所以不必一次又一次地取消绑定。