php - CI框架关于导航栏切换页面的问题

查看:193
本文介绍了php - CI框架关于导航栏切换页面的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

环境

设计了一个如下的导航栏

navbar下面则是正文内容.

需求

非常简单的一个设计想法就是: 点击上面的按钮(如about/blog等), main container会从后台加载前端页面.

原设计思路

使用的是CodeIgniter框架, 打算在前端用Ajax将导航栏的所有按钮进行绑定, 每一个按钮都会触发一个ajax请求. 后端专门写一个public function来处理前端ajax请求, 利用$this->load->view('xxx')完成对Main Container页面的重载, 并且实现php模块化(header.js/footer.js ..etc).

问题

由于每次加载的container不一样, 所用的静态文件例如css|javascript|img在不同的container中加载各不相同, 所以导致header和footer模板没办法统一. 如果把所有的静态资源都统一写在模板php中的话势必导致页面加载时间过长.

曾想过替代方案, 各个container都添加nav这个标签, 这样能保证各自加载不同的静态资源, 不过在成型之后的代码维护方面会比较繁琐, 而且代码重复不够高效.

所以想问一下有没有什么更优秀的解决方案??

补充

可能前面讲的不是很清楚, 已经找到了类似的答案: 德问
想要单页面动态load不同的view, 并加载不同的静态资源

解决方案

首先,如果你是做网站的话,我其实并不建议你这样做,如果将后台内容和前台样式绑定死了的话,那么随着后台的内容修改,前台样式必要需要动,也就失去了灵活性,失去了样式和内容分离。

其次,假如你就要那么任性,将内容和样式结合,那么我建议你可以直接把类似 <link <script <style 这种内容直接放到后台,和内容一起,比如:

<link href="style.css" rel="stylesheet" />
我是一个内容

最后,还有一种解决方案就是,你根据每个模板的不通,单独写出几个view,然后控制器中根据url路由的变化,判断是谁,渲染view,每个view里面有自己单独的样式,这样也可以

这篇关于php - CI框架关于导航栏切换页面的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆