Codigniter:每次都会重新加载部分页面吗?

时间:2015-06-12 13:07:15

标签: php ajax codeigniter model-view-controller partials

我正在学习自己的codeigniter。我正在建立一个新的。我的网站有两个“部分”:菜单和主要内容。菜单是静态的,不应每次都重新加载。

我在codeigniter中读到了有关Partials的一些内容,但我现在有点困惑。我有一个'一般观点',像这样:

常规

<!DOCTYPE html>
<?php $this->load->view('partials/page_head');?>
    <body>

    <div class="wrapper">
        <header>
            <div class="logo">Logo</div>
        </header>
            <?php $this->load->view('partials/menu');?>
        <div id="content">
            $content;
        </div>
    </body>
</html>

控制器:

<?php
class News extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->helper('url');
    }

    public function latest() {
        $this->data['content'] = 'latest';
        $this->load->view('layout/general', $this->data);
    }

    public function detailed() {
        $this->data['content'] = 'detailed';
        $this->load->view('layout/general', $this->data);
    }
}

但是如果我调用latest()函数来生成我的视图会发生什么? codeigniter只重新加载'内容'部分吗?或整个一般页面,包括部分。我搜索了互联网,但是阅读了不同的内容。我知道我可以使用ajax调用,但我想知道如果codeigniter可以为我做同样的事情吗?

1 个答案:

答案 0 :(得分:0)

对于每次页面刷新,Codeigniter都会刷新整个页面。在您的情况下,当您调用latest()方法时,它将执行以下操作:

  • 创建变量$this->data['content']
  • $this->data发送到general视图并加载
  • general视图获取任何“部分”并呈现页面

每次刷新页面时都会发生此过程。

现在,我知道你提到了AJAX。如果您想获取或获取与页面相关的某些数据而不必重新加载整个页面,AJAX将非常有用。