我在Yii中制作了一个基本的shoutbox,一切都很棒。它设置为通过ajax每10秒刷新一次,这也很有效,但如果我在加载时点击另一个页面(当小旋转器在那里时),则会出现一个空白的javascript警报,另一个页面加载并且警报响起,但是我不知道它来自哪里,它不在我的代码中。 Firebug没有任何错误,任何帮助都会非常感激。
这是刷新代码:
<script type="text/javascript">
$(function() {
function callAjax(){
$.fn.yiiListView.update('Shoutbox');
return false;
}
setInterval(callAjax, 10000 );
});
</script>
这是列表视图:
<?php $this->widget('zii.widgets.CListView', array(
'id' => 'Shoutbox',
'dataProvider'=>$dataProvider,
'itemView'=>'shoutbox.views.shoutbox._view',
#'afterAjaxUpdate'=>'js:function(id, data) {$("abbr.timeago").timeago();}', //for ajax update
'summaryText' => '',
'emptyText' => '',
)); ?>
我试过把return:false;在刷新但它没有工作,我注释掉了afterAjaxUpdate,但它仍然发生。
答案 0 :(得分:1)
好的,希望这最终会帮助别人。
在Yii框架(版本1.1.12)中打开文件:
\ YII \籽亿\部件\资产\列表视图\ jquery.listview.js
查找第117行:
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('#'+id).removeClass(settings.loadingClass);
//alert(XMLHttpRequest.responseText);
}
注释警报,问题解决了!
看起来因为请求被中断了Yii抛出了一个错误,这个错误很有意义,但空白警报很烦人。
另请记住在更改文件后清除资产文件夹和浏览器缓存。