【问题标题】:publishing public pages - design - static vs. php generated发布公共页面 - 设计 - 静态与 php 生成
【发布时间】:2012-02-19 21:01:38
【问题描述】:

我正在尝试确定何时提供静态 HTML 与何时根据 PHP 的需要生成 HTML。我的意思是当用户请求一个页面时,它是已经以 HTML 形式等待还是由 PHP 生成,然后作为 HTML 发送。

更具体地说,对于类似于 Facebook、Linked In 或类似的公共页面的用户公共页面的最佳选择是什么。

如果页面用于“内容生成器”,则它需要由 PHP 生成,因为内容是动态的。假设或一般情况假设用户根据需要或在每次登录时更新他的数据。

如果页面是针对用户数据的“内容请求者”,则页面是静态的……只要用户没有登录并更改它,它就不会更改。因此,在 HTML 中生成一个提供给用户数据请求者的静态文件是有意义的。假设在生成器的登录会话之间有 10 个左右的公共页面请求……这将节省 10 个服务器“负载”来生成数据,因为它们已经以静态形式等待。

请注意生成内容的用户“生成器”和请求公共类型页面的用户-“请求者”之间的区别

我想知道是否有人可以验证这种方法。生成在“生成器”更新之间使用的 HTML 静态文件。这是一个验证问题。这是一种有效的方法吗?

【问题讨论】:

  • 这个问题没有任何意义。对客户来说绝对没有区别。
  • @zerkms 据我所知,他正在谈论将 php 生成的内容缓存为服务器提供的静态 html。如果存在有效缓存,则需要静态缓存并完成,否则生成内容,然后将其缓存为静态文件以备下次使用。

标签: php html


【解决方案1】:

几乎所有包含任何动态信息的网络应用程序,甚至像在顶部打印日期或在底部填写版权声明这样的东西,都将使用动态生成的页面。

但这并不意味着页面在每次页面加载时都会动态加载。相反,可能会进行一些缓存来限制服务器重新生成大部分静态内容的工作负载。 (这里说的是在服务器上缓存生成的内容,而不是在浏览器的缓存中)。像 Smarty 这样的模板系统可以做到这一点,大多数 CMS 系统也会有某种缓存机制来做到这一点。

您将需要研究 PHP 缓存机制。

但是,仅当您的网站现在无法适当扩展时才需要这样做。换句话说,除非您的服务器无法跟上当前负载,否则不要担心缓存。

编辑:为清楚起见,这种缓存与操作码缓存无关,而是用于预渲染为 HTML 计算密集型或数据库密集型数据。缓存文件一直提供给客户端,直到它被认为过期,然后必须再次进行整页呈现,访问数据库以获取最新数据。

【讨论】:

  • 我听说过操作码缓存,你指的是这个还是别的什么?
  • @GuyMontag 不,不是操作码缓存,而是将 PHP 输出缓存为 HTML。然后在缓存过期之前的后续请求中,输出文件(可能是 HTML 和 PHP 的组合,但已经加载了数据库内容)从磁盘加载并提供给客户端。
  • “即使是在顶部打印日期或在底部填写版权声明之类的东西”——两件你不应该做的事情。前者是因为计算机内置了时钟,并且页面上的日期看起来像是发布时间而不是当前时间。后者是因为版权从内容创建之时开始生效,而不是最后一次发送给访问者的时间。
  • @Quentin 言下之意是,计算机是填写日期的人,而不是人输入...
  • @Michael — 声称版权从当年延伸的版权声明如何暗示它是由计算机填写的?用计算机填写日期如何使您可以从错误的年份主张版权?
猜你喜欢
  • 2016-07-10
  • 2021-12-18
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多