Javascript 自动刷新控制器和视图Yii

Javascript 自动刷新控制器和视图Yii,javascript,php,yii,Javascript,Php,Yii,当有/没有数据更新时,我如何使此页面每10秒自动刷新/更新一次。当有新的推特时,就像推特一样 示例:这是第一秒 您有1个没有状态的名称 然后,10秒钟后,出现一个事件,表明已添加“名称”数据 你有两个没有状态的名字 我该怎么办?我已经尝试使用javascript,但它不会刷新控制器中的数据 这是我的actioncheckNames控制器 public function actioncheckNames() { //Check Name with No Status $noSta

当有/没有数据更新时,我如何使此页面每10秒自动刷新/更新一次。当有新的推特时,就像推特一样

示例:这是第一秒

您有1个没有状态的名称

然后,10秒钟后,出现一个事件,表明已添加“名称”数据

你有两个没有状态的名字

我该怎么办?我已经尝试使用javascript,但它不会刷新控制器中的数据

这是我的actioncheckNames控制器

 public function actioncheckNames() {
    //Check Name with No Status
    $noStat = new CDbCriteria();
    $noStat->condition = "status IS NULL";
    $noStat->order = "name ASC";
    $sums = Name::model()->count($noStat);
    //End of Check Function
    return array('sum'=>$sums);
}
这是我在视图上的索引

<script>
        $(document).ready(function() {
            setInterval(function() {
                $.ajax({
                    url: '<?php echo $this->createUrl('name/checkNames'); ?>'
                    , type: 'post'
                    , success: function(data) {
                        if (data) {
                                $("#checkname");
                                }
                            }
                        });
                    }, 5000 //5 seconds
                            );
                });
    </script>
<div id="checkname">
        <?php
        if ($sum != 0) {
            ?>
            <div class="alert alert-block alert-primary fade in">
                <button data-dismiss="alert" class="close" type="button">X</button>
                <h4 class="alert-titleing">You Have <?php echo $sum ?> Names With No Status. <a href="name/noStatus"><font color="White"><u>Check</u></font></a> </h4>
            </div>

        <?php }
        ?>
    </div>

$(文档).ready(函数(){
setInterval(函数(){
$.ajax({
url:“”
,键入:“post”
,成功:函数(数据){
如果(数据){
美元(“#支票名称”);
}
}
});
},5000//5秒
);
});
X
你的名字没有状态。

*更新:创建actionCheckNames控制器并添加ajax脚本。但是我的网站不会刷新数据。

你可以通过jssetinterval+AJAX请求刷新你的页面&可以尝试下面的方法

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>
$(document).ready(function(){
    setInterval(function(){
            $.ajax({
                url: '<?php echo $this->createUrl('controller/action');?>'
                ,type: 'post'
                //,data: {var1: val1, var2: val2,....}
                ,success: function(data){
                    if(data){
                        //Refresh your div/html element by appending here...
                    }
                }
            });
        },10000 //10 seconds
    );
});

$(文档).ready(函数(){
setInterval(函数(){
$.ajax({
url:“”
,键入:“post”
//,数据:{var1:val1,var2:val2,…}
,成功:函数(数据){
如果(数据){
//通过在此处追加来刷新div/html元素。。。
}
}
});
},10000//10秒
);
});

你能描述一下吗?或者制作一个示例代码?在Websocket上推送消息将是最佳解决方案,但这是一项艰巨的工作。我肯定会使用Websocket,但它不容易实现。我的下一个选择是每x秒使用ajax进行一次轮询。请查看我更新的源代码。有什么问题吗?