追加/预先将ajax响应放在div的顶部

时间:2013-01-21 04:08:38

标签: php ajax

在我的应用程序中,我想添加或预先挂起,如果这是正确的单词,ajax请求的结果是人们已经显示的帖子列表。我的意思是当用户点击帖子并触发ajax请求时,结果应该被推送到div中现有帖子列表的顶部。 我想到的一种方法是在用户发布内容以获取按时间戳排序的新帖子列表之后触发第二个ajax请求,这样帖子将自动出现在顶部,但这似乎是用不必要的调用来惩罚数据库。

请建议最好有效的方法。请不要为此建议jquery,我想在原始的javascript中进行,我将在以后使用jquery时,我没有任何方法实现我想实现。

我的javascript代码:

 function postAjaxFade(){

 t = document.getElementById("post").value;
 // other element values like timestamp etc...
 params = "post="+t+"&fl="+f;

 if (window.XMLHttpRequest)
  { 
  xmlhttp=new XMLHttpRequest();
 }
 else
 {
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
  xmlhttp.onreadystatechange=function()
 {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
 // what do i add here to append the value to top of this div below..
   document.getElementById("postContainer").innerHTML=xmlhttp.responseText;

  }
 }
 xmlhttp.open("POST","search.php",true);
 xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 xmlhttp.send(params);
}

1 个答案:

答案 0 :(得分:3)

变化:

document.getElementById("postContainer").innerHTML=xmlhttp.responseText;

var inner = document.getElementById("postContainer").innerHTML;
inner = xmlhttp.responseText + inner;
document.getElementById("postContainer").innerHTML = inner;