1

私のスクリプトは完全に正常に機能しています。ただし、コンテンツは新しいデータを取得するために自動的に更新されません。なんでそうなの?

 function updateMsg() {
    $.ajax({
       url: "/recent/notifications/",
       cache: false,
       success: function(html){     
         $("#profile_notifarea_msgbox").html(html);
       }
    });
    setTimeout('updateMsg()', 4000);
 }
 updateMsg();   
4

2 に答える 2

1

setTimeoutは、文字列を使用する代わりに、updateMsgを直接参照できます。

var timeout;

function updateMsg() {
   $.ajax({
      url: "/recent/notifications/",
      cache: false,
      success: function(html){     
        $("#profile_notifarea_msgbox").html(html);
        timeout = setTimeout(updateMsg, 4000);
      }
   });       
}
updateMsg();   

function stopUpdate() {
    clearTimeout(timeout);
}

継続的な更新を停止するには、setTimeoutへの参照を変数に保存してから、clearTimeoutを呼び出して、その変数を渡します。この例では、関数stopUpdate()を呼び出すだけで、更新をキャンセルできます。

于 2011-03-25T15:53:39.720 に答える
0

jQueryでajaxを使用する場合は、常にエラー関数を配置するようにしてください。これにより、リクエストに問題があるかどうかを識別できます。

于 2011-03-25T16:27:12.190 に答える