在重新加载时使用会话数据反映网页的变化是一个好主意吗?

时间:2015-09-05 20:14:36

标签: php codeigniter

通常,AJAX用于通过与后端(在我的情况下,CodeIgniter)异步通信来动态修改网页,以避免页面重新加载。

但是,我正在考虑使用会话数据对那些页面重新加载不是问题的情况做同样的事情。

以下是我要做的事情的代码片段:

HKEY_CURRENT_USER\Software

在构建个人资料页面时,这就是我正在做的事情:

if($this->Member_model->checkPassword($data)){ //checks whether old password is correct
    $this->Member_model->setPassword($new_pass); //sets the new password
    $this->session->set_userdata('pass_meta', 'success'); //stores success in session data
}
else {
    $this->session->set_userdata('pass_meta', 'fail'); //stores fail in session data
}
redirect('profile','refresh'); //refreshes the page

因此成功/失败消息将传递给View,触发相应的消息。

现在,这种方法对我来说非常合适。我的问题是:这是一个好主意吗?这种设计方法的优点/缺点是什么?

1 个答案:

答案 0 :(得分:1)

大多数框架都实现了一种称为flash消息的东西,这些消息是仅在一个请求中存储在会话中的消息。这可以防止消息在不应该存在的情况下持久存在。使用这样的会话没有任何问题,主要考虑的是不要用太多的数据来淹没会话(特别是如果你使用服务器空间来存储会话)。

编辑:通常只需将整个消息/翻译密钥传递给会话存储,然后使用适当的类将其显示在视图中。这样,您可以在不同的视图中使用通用警告/成功消息,而不需要为每个消息添加额外的逻辑。