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

Codigniter:Does a partial page get reloaded every time?

我正在自学 codeigniter。我正在建立一个新闻网站。我的网站有两个 'parts':菜单和主要内容。菜单是静态的,不应该每次都重新加载。

我在 codeigniter 中阅读了一些关于 Partials 的内容,但我现在有点困惑。我有一个 'general view' ,像这样:

一般:

<!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 是否只重新加载 'content' 部分?或整个通用页面,包括部分页面。我在互联网上搜索,但阅读了有关此的不同内容。我知道我可以为此使用 ajax-调用,但我想知道 codeigniter 是否可以为我做同样的事情?

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

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

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

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