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, 并加载不同的静态资源
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,如果你是做网站的话,我其实并不建议你这样做,如果将后台内容和前台样式绑定死了的话,那么随着后台的内容修改,前台样式必要需要动,也就失去了灵活性,失去了样式和内容分离。
其次,假如你就要那么任性,将内容和样式结合,那么我建议你可以直接把类似 <link <script <style 这种内容直接放到后台,和内容一起,比如:
最后,还有一种解决方案就是,你根据每个模板的不通,单独写出几个view,然后控制器中根据url路由的变化,判断是谁,渲染view,每个view里面有自己单独的样式,这样也可以