CakePHP&JQuery,location.reload有时不起作用

CakePHP & JQuery, location.reload sometimes not working

本文关键字:reload 不起作用 location amp JQuery CakePHP      更新时间:2023-09-26

嗨,我正在开发带有复选框和按钮的数据删除页面。删除后,我想显示交易成功与否的消息。大多数情况下,消息显示正确,但有时页面重新加载不会发生,并且在手动重新加载之前不会显示消息。现在,如果不确定页面是否被重新加载,是否有其他方式可以显示来自控制器的消息?这是代码:

(index.ctp)

<script type="text/javascript">
$(document).ready( function() {
    $("#btn").click(function() {
        var ids = '';
        $('input[type="checkbox"]').each(function(){
            if(this.checked){
                ids = ids.concat(this.id).concat(',');
            }else{
                jAlert("Please choose items to delete");
            }
        });
        if (ids != ''){
            jConfirm('Delete?', 'Confirm',function(r){
                if(r==true){
                    ht = $.ajax({
                        url: 'items/delete/'.concat(ids),
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                    });
                    location.reload(true);
                }
            });
        }
    });
});
</script>

(controller.php#函数删除())

$this->Session->setFlash(__('Deleted!, true));
$this->redirect(array('action'=>'index'));
CakePHP的会话flash通常非常可靠。

也许您的浏览器无法可靠地使用location.reload(true)进行硬刷新。尝试window.location = window.location.href + "?nocache=" + new Date().getTime()手动清除缓存,看看这是否有帮助。