2016-07-20 3 views
0

今はsetIntervalを使用していますが、setTimeoutを使用します。 //機能関数をsetTimeoutに変換する方法

$.when(
      data['layout'] = "getMessages", 
      data['limit'] = limit, 
      fetchMsg(data,'[data-messages]',{"background-color":"#fff"}) 
     ).then(

      setInterval(function(){ 
       data['lastupdate'] = localStorage.lastupdate; 
       data['layout'] = "getNewMessages", 
       fetchMsg(data, '[data-body-new]',{"background-color":"#b4eeb4"}); 

      }, 1000) 
     ); 

function fetchMsg(info, container, messageStyle){ 
      $.ajax({ 

       method: "POST", 
       url: window.root+"/index.php", 
       "data": info, 
       error: function() { 
       alert('error'); 
       }, 
       success: function(result) { 
        .......... 
       } 
       }); 

私は以下しようとしたが、それは動作しません:

setTimeout(function(){ 
    data['lastupdate'] = localStorage.lastupdate; 
    data['layout'] = "getNewMessages", 
    fetchMsg(data, '[data-body-new]',{"background-color":"#b4eeb4"});     
}, 1000) 

// 機能

function fetchMsg(info, container, messageStyle){ 
       $.ajax({ 

        method: "POST", 
        url: window.root+"/index.php", 
        "data": info, 
        error: function() { 
        alert('error'); 
        }, 
        success: function(result) { 
         .......... 
        }, 
        complete:fetchMsg 
        }); 
+5

コードの内容を簡単に説明できますか? "[私は] setTimeoutを使いたいと思っています。もう少し文脈が私たちがあなたを助けるのに役立ちます。 – nnnnnn

+0

壊れたコードは、そのコードが何をすることが期待されているかについての適切な説明の代わりには適していません – charlietfl

+0

@nnnnnn setTimeoutはx秒後に1回要求を出し、setIntervalはx秒の間隔で行います。ページをリロードするときにエラーを警告します。 – 112233

答えて

0

あなたのコードは修正されませんが、ここではインターバルからsetTimeoutに進むという基本的な考え方があります。

まず、「間隔」を変数と同じにします。あなたが変更したいとき

var init = setInterval(doFunc,1000);

以降:

clearInterval(init);

をして、タイムアウトを設定するだけで実行します。

setTimeout(doFunc);

とのthatsを基本的にそれは。

関連する問題