Ajax长轮询将数据发布到php

时间:2014-12-19 05:32:17

标签: jquery ajax

我有以下代码每隔几秒运行一次以从php文件中获取数据:

<script>            
$(document).ready(function(){
    function doPoll(){
        var cid= <?php echo $user2 ?>;
        $.post('chatfunction.php') .done(function(data) { /* process */ 
            document.getElementById("#chatarea").innerHTML = data;
        }) .always(function() { 
            setTimeout(doPoll, 5000); 
        });
    }
});
</script>

这不是通常的ajax格式,但是,我需要将一个变量POST到php文件中,我可以知道如何在这段代码中集成它吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

  

不确定如何设置超时并使其无论是否出现错误都会连续运行

为此,您需要setinterval()

$document.ready(function() {
  setinterval( function(){ doPoll() }, 3000 );
});

答案 1 :(得分:-1)

您应该将function doPoll()放在document.ready

之外

它应该是这样的:

$document.ready(function() {
    setInterval(doPoll(), 5000); // It will run doPoll() function every 5 seconds
});


function doPoll(){
     // and the rest of the code
}

这是调用函数或在doPoll()函数上触发发布请求的正确方法。

您也可以使用AJAX进行发布请求

$.ajax({
  type: "POST",
  url: "YOU_URL_HERE", // your URL
  data: {param1:"params1", params2:"params2", params3:"params3"}, // parameters you need to pass
  success: function(){
     alert("SUCCESS"); // If success
  },
  error: function() {
    alert("ERROR"); // If error
}
});

修改: 添加了setInterval,以便doPoll()函数每5秒执行一次