如何使这个页面自动刷新/更新每10秒当有/没有数据更新。就像推特上有新推文一样。
示例:This is in first second.
你有一个没有状态的名字
然后在10秒后,有一个事件,"name"数据已经添加。
你有两个名字没有状态
我该怎么办?我试过用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>
*更新:创建actionCheckNames控制器和添加ajax脚本。但是我的网页不会刷新数据
你可以刷新你的JS设置间隔+ 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
);
});