我对以网络为中心的设计和编程相当陌生。
我有一个带PHP页面的HTML + CSS我非常满意。它有一个标题,一个主要内容区域和一个侧边栏 现在我正在第二页上工作。第二页应与第一页具有相同的外观。我将重用CSS,但第一页和第二页之间似乎有很多重复(标题中的内容,例如,侧边栏几乎相同)。
在多个页面上重复播放是否正常?如果,稍后,我想改变一些东西,我将不得不在(可能)许多地方改变它;这看起来很傻,所以我认为我错过了一些东西。
我想也许我会在一个“更大”的包装器中使用我的CSS中的“小部件”,或许包含整个Header,然后在两个页面中包含它;我不确定这是否是我应该前进的正确方向(或者我是如何做的)。
我也想过,或许我可以使用PHP每次动态生成页面,将生成包装在一个类中,然后最终得到像myClass->generateHeader()
这样的东西。我正在使用PHP生成一些页面,所以概念上的飞跃不是太大;另一方面,我认为生成页面的每个请求在性能方面都更差,并且(从我的简短搜索)似乎涉及数百行PHP来生成相当短的HTML,(假设它更复杂)而不是一堆包含我已编写过的HTML的echo
语句。
搜索“创建HTML模板”是徒劳的,但我不确定我会用什么样的关键字来询问这是如何正常处理的。
你如何坚持干,避免在网站的几个相关页面重复自己?
答案 0 :(得分:0)
通常的做法是将页眉和页脚文件分开并包含它们。一本好书就是Larry Ullman的php and mysql for dynamic web pages。
但要快速浏览,请访问:http://www.davidjrush.com/blog/2009/08/php-header-and-footer-templates/
答案 1 :(得分:0)
您可以使用php include方法:http://php.net/manual/en/function.include.php,以便不必重复始终需要的部分页面。例如,页眉和页脚,导航等。
要回答您的其他问题,使用类存储html部分是另一种方法,可以证明是有用的。除非你的类需要在初始化时进行大量的计算,否则它也不会增加很多额外的处理时间。
答案 2 :(得分:0)
如果您担心某些事情会在多个资源中重复出现,请将它们排除在外。
在后处理中添加它们。
您在服务器级别上做得最好。您还可以根据需要在该级别添加缓存,这样您的页面只会生成一次而不会再生成(或者直到缓存过期)。
答案 3 :(得分:0)
我同意Matt K,这可能是更多程序员堆栈交换相关但我仍会提供一些提示。
我认为通常的做法是创建某种页眉/页脚文件。例如,您的头文件将包含您在每个页面上所需的所有内容,即徽标,菜单,CSS包含等。页脚对于以下内容非常有用:关闭包装器div,google adsense代码等。
创建这些文件后,您只需为每个页面执行以下操作:
<?php include("header.php"); ?>
BODY OF PAGE
<?php include("footer.php"); ?>
:)
答案 4 :(得分:0)
如果任何组件是静态组件(例如侧栏),那么您可以将静态HTML放在一个文件中,只需将include
放在相关位置即可。 (OO替代方法:让View对象拉入静态HTML。)
如果您需要这些组件中的某些自定义逻辑,那么include
仍然可以正常工作,但由于您讨论了基于类的替代方案,我建议您在应用程序中构建MVC architecture。
MVC框架可能会将标题/侧边栏/页脚等视为部分视图(主视图中的较小组件),或整体布局的一部分(你的标题/侧边栏/页脚环绕你的主要内容正文。)
布局选项非常有意义,因为它将主要内容的视图与页面组件如何粘在一起的整体概念分离开来。这也意味着修改布局非常容易(例如,通过更改一个布局文件将侧边栏放在右侧而不是左侧)。