0

ソースは次のとおりです。

function updateMsg() {
    $.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) {
        alert("1");
        $("#loading").remove();
        addMessages(xml);
    });
    setTimeout('updateMsg()', 4000);
}

そのalert関数は機能していませんが、の外では機能function(xml)alertています。
jQueryソースに問題がありますか?

4

4 に答える 4

3

変化する:

setTimeout('updateMsg()', 4000);

に:

setTimeout(updateMsg, 4000);

また、投稿されたコードでtimestampは、isであり、関数のスコープ外にundefined配置する必要があることに注意してください。setTimeout

于 2013-02-16T11:30:35.113 に答える
2

成功コールバックがトリガーされない場合は、リクエストが失敗したことが原因である可能性があります。.post()のドキュメントを参照してください。よりフル機能の.ajax()を使用して、状況をより細かく制御することをお勧めします。

function updateMsg() {
    // You must define timestamp
    var timestamp = $.now();
    $.ajax({
        url: "AjaxChatServer.jsp",
        type: "POST",
        data: {
            time: timestamp
        },
        success: function (xml, textStatus, jqXHR) {
            $("#loading").remove();
            addMessages(xml);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            // Handle error
            alert(textStatus);
        }
    });
}

setTimeout(updateMsg, 4000);
于 2013-02-16T11:29:28.643 に答える
0

おそらくajaxに問題があると思います-どこかでエラーが発生します。post関数の最後にとを追加して、エラーを確認して.errorください。.success

function updateMsg() {

$.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) {
  alert("1");
  $("#loading").remove();

 addMessages(xml);
})  .error(function(){
        alert("error");
     })  .success (function(){
        alert("error");
     );
于 2013-02-16T11:31:23.247 に答える
0

変数「タイムスタンプ」が宣言されていますか?

試す :

function updateMsg() {
    var date = new Date(), timestamp = date.getTime();

    $.post("AjaxChatServer.jsp",{ time: timestamp }, function(xml) {
       alert("1");
       $("#loading").remove();

       addMessages(xml);
    });
}
于 2013-02-16T11:38:36.777 に答える