为什么io请求被多次发送?

时间:2014-08-11 09:04:28

标签: javascript web-services yui

我是 Yui 的新手,但仍计划了解它。所以,我需要你!我有一点问题,还没有找到任何解决方案。这是计划:

我有一个按钮,当我点击它时,该按钮会将Json发送到网络服务。如果成功发送,我会收到“成功”警报,否则会收到“失败”。

问题在于:

  • 点击按钮一次,我获得 1次成功提醒(确定)
  • 再次点击,我得到 2次成功提醒(为什么两次?)
  • 第三次点击并获得 3次成功提醒 ...
  • 我刷新页面,点击按钮获得1次成功提醒

那为什么呢?为什么第二次显示两次警报? 这是我正在使用的Yui代码:

    YUI().use('io-base', 'json', 'event', 'querystring-stringify-simple', function (Y) {
    Y.one('#connectBut').on('tap', function (e){

        var jsonCreateUser = {
                "login": "01234",
                "password": "TestUser"
            },
            handleSuccess = function () {
                alert("success");
            },
            handleFailure = function () {
                alert("failure");
            },
            url = 'myServer';

        Y.on('io:success', handleSuccess);
        Y.on('io:failure', handleFailure);

        Y.io(url, {
            method: 'POST',
            data: jsonCreateUser
        });
    });
});

如果这对您来说听起来很明显,请解释一下,我真的很想了解这个。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

tap上的每个#connectBut事件都会将handleSuccess绑定到io:success

您必须将代码绑定handleSuccess移出io:success事件处理程序。

Code example