【问题标题】:JQuery getJSON causing infinite loopJQuery getJSON导致无限循环
【发布时间】:2013-11-01 14:25:48
【问题描述】:

我似乎无法弄清楚为什么这段代码会导致无限循环。我怀疑通过更新 html 元素会导致重新触发加载事件,因此会重复调用 getJSON。如果是这种情况,关于如何在页面(或特定元素加载)时调用 getJSON 而不会导致循环的任何建议?

$("#content").on("load",function(){
$.getJSON(url, function(data) {
$('#div1').html(data.Name);
});
});

【问题讨论】:

    标签: jquery getjson infinite-loop


    【解决方案1】:

    你可以在 DOM 准备好(即页面完全渲染)时尝试加载它

    试试这个

    $(document).ready(function(){
       $.getJSON(url, function(data) {
         $('#div1').html(data.Name);
       });
    });
    

    【讨论】:

    • 我尝试使用 $(document).ready 但是结果是一样的。更改 div1 元素后,ready 事件再次触发,将其置于无限循环中。
    • 忽略我最后的评论。我发现了问题,我正在尝试使用 setInterval,这似乎导致了循环问题。
    【解决方案2】:

    如果您从 $.getJSON 重新加载 content 元素,那么它将进入无限循环。我不知道您的内容元素是什么类型。但我认为,不要称它为onload。在 $.getJSON 中更改您不会更改的内容时触发 JSON 调用

    【讨论】:

    • 感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2020-08-27
    • 2021-05-07
    • 2012-08-24
    相关资源
    最近更新 更多