我想知道是否可以将 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>
setInterval(function(){
$.ajax({
type: "POST",
url: "insert.php",
success : function(response){
//update target area with response
}
});
}, 10000); //try update every 10 seconds
试试这个:
var intervalid = window.setInterval(function() {
//Your ajax query here
}, intervalInMilliSec);
要取消间隔,请使用以下命令:
window.clearInterval(intervalid);