用jquery设置Ajax来设置时间间隔

时间:2016-02-10 01:57:06

标签: php jquery ajax

我正在处理一条通知消息我希望使用Ajax和Jquery每隔10秒从页面调用check_new-reply.php加载新消息但是我的代码没有显示任何内容我不知道错误是什么请有人帮帮我吗?

<script>
$(document).ready(function(){
$(function(){
var timer = 10;
var test = "";
function inTime(){
    setTimeOut(inTime, 1000);
    $("#timer-u").html("Time refreshing"+timer);
    if(timer == 8){
        $("#message-u").html("Loading....");
        $.POST("check_new_reply.php",{testing:test}, function(data){
        $("#message-u").html(data); 
    })
        timer = 11;
        clearTimeout(inTime);
    }
    timer--;
}
inTime();
   });
});
</script> 

这是PHP

<?php include($root . '_inc/Initialization.php');?> 
<?php require_once("_inc/dbcontroller.php"); $db_handle = new DBController();?>

<?php 
$users = $_SESSION['username'];
$newquery = "SELECT * FROM blog_post
        INNER JOIN replys
        ON blog_post.UserName = '$users'
        WHERE replys.read = 0
        ORDER BY rtime";
        $newhisory =  mysql_query($newquery);
        while($newrow =  mysql_fetch_array($newhisory)){
echo '<div class="fnot"><a href="/questions/postid/'.$newrow['BID'].'" id="readme">'.htmlentities($newrow['blog_title']).'</a>'; 
echo '<span class="ttcredit"><font color="darkgreen">94</font> </span> <a class="reqttag reqttag2" href="#">No</a> ';
echo '</div>';
echo '<input type="hidden" id="unr" name="unr" value="'.$newrow['BID'].'"/>';
}

?>

3 个答案:

答案 0 :(得分:0)

如果您只想每10秒调用一次,请在10000中使用setTimeOut毫秒。此外,最好只在前一个Ajax调用完成时再次调用该函数:

$(document).ready(function(){
    $(function(){
    var test = "";
    function inTime(){
        $.POST("check_new_reply.php",{testing:test}, function(data){
            $("#message-u").html(data); 
            setTimeout(inTime, 10000);
        });
    }
    inTime();
    });
});

答案 1 :(得分:0)

要以某种间隔调用任何函数,您必须使用

<script>
    $(document).ready(function(){
        window.setInterval(function(){
            myAjaxCall();
        }, 10000);
    });

    function myAjaxCall() {
        alert("Hi");
        $("#message-u").html("Loading....");
        $.POST("check_new_reply.php",{testing:test}, function(data){
            $("#message-u").html(data); 
        });
    }
</script>

window.setInterval将使用上面的代码每隔3秒调用一次您的函数,并生成一条警告消息,
你需要做的是在一个函数中设置你的ajax代码并使用上面的方法,将3000改为10000,你的ajax调用将每隔10秒灵活地工作,

答案 2 :(得分:0)

这是每隔10秒调用我们的javascript函数的代码, 只是复制它并检查它,你会得到一个想法,我也已经包含了jquery,我们已经讨论过了。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
</body>
<script>
    $(document).ready(function(){
        window.setInterval(function(){
            myAjaxCall();
        }, 3000);
    });

    function myAjaxCall() {
        alert("Call your Ajax here");
        $("#message-u").html("Loading....");
        $.POST("check_new_reply.php",{testing:test}, function(data){
            $("#message-u").html(data); 
        });
    }
</script>