$ .getJSON重复和递增(JSONP)

时间:2014-04-07 21:30:24

标签: javascript jquery callback jsonp getjson

我的情况非常类似于这里所说的:

jquery $.getJSON repeats X times

但是我没有使用live功能,所以他的解决方案并没有让我明白我为什么遇到这个问题。

我的问题是我第一次调用webservice时只调用一次。用户继续并完成其过程并返回主菜单。第二次调用服务两次。第三次:三次等等。

该服务是通过使用jQuery showhide进行导航的" one page" 网站的网站上的点击事件来调用的。 (该网站适用于非常小的屏幕)

原谅这是多么的不可思议。我理解它有点迂回。

$('.button').click(function() {
    var buttonValue = $(this).attr('value');
    if (buttonValue === 'YES') {
        $.answer('Y');
    } else {
        $.answer('N');
    }
});

哪个电话:

(function ($) {

    'use strict';

    $.extend({

        answer: function(SEL) {

            if (SEL === 'Y') {

                $('#label').html('Answer? <strong>Y</strong>');
                $('#answerPage').hide();
                $.example('Y');

            } else {

                $('#label').html('Answer? <strong>N</strong>');
                $('#answerPage').hide();
                $.example('N');

            }

        }

    });

}(jQuery));

这里我们填充并追加结果:

(function ($) {

    'use strict';

    $.extend({

        example: function(SEL) {
            var i,l,
            url = 'http://www.example.com?flag=' + SEL + '&callback=?';

            $.getJSON(url, function(data) {
                for (i = 0, l = data.length; i < l; i = i + 1) {
                    $('#page').append('<p>data[i].Name</p>);
                }
            });

            $('#page').show();
        }

    });

}(jQuery));

我注意到每次请求时回调名称都是唯一的。 IE:

回调= jQuery11020049298197496682405_1396904089952&安培; _ = 1396904089953 回调= jQuery11020049298197496682405_1396904089945&安培; _ = 1396904089951

编辑:返回的数据:

jQuery110207106537006329745_1396907300225([
   {
      "Code":1,
      "Name":"VISUAL",
      "DefaultDueIn":15,
      "EmailSubject":"",
      "EmailContent":"",
      "InStore":true,
      "ReturnStatus":null
   },
   {
      "Code":2,
      "Name":"ALTERATIONS",
      "DefaultDueIn":15,
      "EmailSubject":"",
      "EmailContent":"",
      "InStore":true,
      "ReturnStatus":null
   },
   {
      "Code":3,
      "Name":"HOLD FOR RTV",
      "DefaultDueIn":30,
      "EmailSubject":"",
      "EmailContent":"",
      "InStore":true,
      "ReturnStatus":null
   },
   {
      "Code":4,
      "Name":"MARKETING",
      "DefaultDueIn":15,
      "EmailSubject":"",
      "EmailContent":"",
      "InStore":true,
      "ReturnStatus":null
   },
   {
      "Code":5,
      "Name":"EVIDENCE",
      "DefaultDueIn":90,
      "EmailSubject":"",
      "EmailContent":"",
      "InStore":true,
      "ReturnStatus":null
   }
])

用户返回主菜单后重置页面内容

$('#page').html('');

我可以在网络日志中看到请求运行多次,每次都递增。

在浏览器重新加载之前是否会继续运行虚假进程?我该如何管理?

0 个答案:

没有答案