0

Ajaxは、以下のコードで2回呼び出しています。これは、Fiddlerとfirebugで確認しました。

私はすべての関連する質問を読みましたが、解決策が見つかりませんでした....以下は私のコードです。

また、onclickイベントも2回発生することを確認しました。

 <head>

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="format-detection" content="telephone=no" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<link rel="stylesheet" href="css/jqmd.css" />

<script src="js/jm.js" type="text/javascript"></script>

<script src="js/json2.js" type="text/javascript"></script>

</head>
         <body>    

       </body>
 <script language="javascript">

    function pp() {
        $.ajax({

            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: "cont.aspx/getP",
            data: "{gt: '',cid: ''}",
            success: function(r) {
                alert('test');
            }
        });
    }

    setTimeout("pp()", 2000);
  </script>

4

2 に答える 2

0
var t='';
 function pp() {
        $.ajax({

            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: "cont.aspx/getP",
            data: "{gt: '',cid: ''}",
            success: function(r) {
                alert('test');
            }
        });
 clearTimeout(t);
    }

 t= setTimeout("pp()", 2000);
于 2012-06-06T06:15:46.273 に答える
0

ajax呼び出しが行われた後にブール値をtrueに設定するのはどうですか。値が変更されていると、実行されません。これを試して:

<script language="javascript">
    var j;
    function pp() {
        if (j !== true) {
            $.ajax({

                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                url: "cont.aspx/getP",
                data: "{gt: '',cid: ''}",
                success: function(r) {
                    alert('test');
                }
            });
         }
            j = true;
        }

        setTimeout("pp()", 2000);
      </script>
于 2012-06-06T06:21:24.763 に答える