2012-08-04 41 views
1

我想知道是否有可能將Ajax輪詢插入到當前代碼中,因此用戶發佈每隔數秒鐘更新一次以顯示添加到數據庫的任何新內容,例如其狀態和添加的新評論數量以及我製作的Feed中的時間戳。這是我到目前爲止。插入Ajax輪詢

<script> 
$(document).ready(function(){ 
    make_call(); 
    $("form#myform").submit(function(event) { 
     event.preventDefault(); 
     var content = $("#toid").val(); 
     var newmsg = $("#newmsg").val(); 

     $.ajax({ 
      type: "POST", 
      url: "insert.php", 
      cache: false, 
      dataType: "json", 
      data: { toid: content, newmsg: newmsg }, 
      success: function(response){ 
       $("#homestatusid").prepend("<div id='divider-"+response['streamitem_id']+"'><div class='userinfo'><a href='/profile.php?username="+response['username']+"'><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped"+response['id']+".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></a><div style='cursor:pointer;position:relative;top:0px;float:right;padding-right:5px;' onclick=\"delete_('"+response['streamitem_id']+"');\">X</div><a href='/profile.php?username="+response['username']+"'>"+response['first']+" "+ response['middle']+" "+response['last']+"</a><span class='subtleLink'> said</span><br/><a class='subtleLink' style='font-weight:normal;'>"+response['streamitem_timestamp']+"</a><hr>"+newmsg+"<div style='height:20px;' class='post_contextoptions'><div id='streamcomment'><a style='cursor:pointer;' id='commenttoggle_"+response['streamitem_id']+"' onclick=\"toggle_comments('comment_holder_"+response['streamitem_id']+"');clearTimeout(streamloop);swapcommentlabel(this.id);\">Write a comment...</a></div><div id='streamlike'><a id='likecontext_"+response['streamitem_id']+"' style='cursor:pointer;' onClick=\"likestatus("+response['streamitem_id']+",this.id);\"><div style='width:50px;' id='likesprint"+response['streamitem_id']+"'>Like</div></a><div style='width:50px;' id='likesprint"+response['streamitem_id']+"'></div></div><div id='streamdislike'><a id='dislikecontext_"+response['streamitem_id']+"' style='cursor:pointer;' onClick=\"dislikestatus("+response['streamitem_id']+",this.id);\"><div style='width:70px;' id='dislikesprint"+response['streamitem_id']+"'>Dislike</div></a><div style='width:70px;' id='dislikesprint"+response['streamitem_id']+"'></div></div></div><div class='stream_comment_holder' style='display:none;' id='comment_holder_"+response['streamitem_id']+"'><div id='comment_list_"+response['streamitem_id']+"'><table width=100%><tr><td valign=top width=30px><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped"+response['id']+".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></a><td valign=top align=left><div class='stream_comment_inputarea'><input type='text' name='content' style='width:100%;' class='input_comment' placeholder='Write a comment...' onkeyup='growcommentinput(this);' autocomplete='off' onkeypress=\"if(event.keyCode==13){addcomment("+response['streamitem_id']+",this.value,'comment_list_"+response['streamitem_id']+"',"+response['id']+",'"+response['first']+" "+ response['middle']+" "+response['last']+"');this.value='';}\"><br/></div></div>"); 
      } 
     }); 
     return false 
    }); 
}); 
</script> 

回答

1
setInterval(function(){ 
    $.ajax({ 
      type: "POST", 
      url: "insert.php", 
      success : function(response){ 
        //update target area with response 
      } 
    }); 
}, 10000); //try update every 10 seconds 
+0

謝謝羅賓。如預期的那樣非常直截了當 – dave 2012-08-04 14:53:43

+0

一個問題。我有一個評論下降框..並關閉它時,它的東西。 – dave 2012-08-04 14:55:19

+0

@dave:我無法想象你的保管箱是什麼意思。你的意思是下拉,像「選擇」?有沒有附加的事件處理程序? – 2012-08-04 14:57:17

1

試試這個:

var intervalid = window.setInterval(function() { 
    //Your ajax query here 
}, intervalInMilliSec); 

要取消間隔,使用此:

window.clearInterval(intervalid);