1

我在我的网站上使用了 php,因此它可以显示多种语言。我注意到 html 文件的大小减小了,因为大部分文本被移动到一个新的大型 php 文件中,其中包含所有可用语言的所有“惯用”文本(在我的例子中只有两个)。

我的问题是:以前下载的 html 页面只包含必要的文本。现在下载了一个较小的 html 页面,但始终包含一个大的 php 文件,无论 html 使用更多或更少的行。

问题:

  1. 当包含 php 文件时(include_once(file.php);require_once(file.php);)发生了什么?file.php被复制的内容是html 吗?它只是用来对语言处理器说“如果你需要解析一个名字,你可能想看看file.php”?
  2. 什么是(速度)效率更高;拥有一个包含每个 html 页面的每种语言的大型 php;或者每个 html 页面只有一个 php 文件,其中包含该页面所需的代码?
  3. 应该在使用之前包含一个 php,还是应该是页面顶部的一般包含,以获得最终将在 html 页面中使用的大部分 php?
  4. 最后,php会增加页面加载时间吗?

PS:有人试过PHP Speedy吗?它真的有效吗?它有任何问题(兼容性)吗?


我发现:

  1. (检查解决方案)
  2. 两种解决方案具有完全相同的性能。我选择按语言分隔文件,因为它感觉更整洁。
  3. 同上,对性能没有影响。
4

4 回答 4

4

1) 每个 include / require 语句都被包含 / required 文件的内容替换。包含文件本身的内容正在成为执行脚本的一部分,但是它是否会成为 HTML 响应的一部分取决于内容本身。

2) 除非您有大量访问者,否则您几乎不会注意到包含一个大文件和几个较小文件之间的区别。但是,最好只包含实际需要的部分,因为这样可以节省 Web 服务器内存和资源,在大量请求的情况下可能会出现问题。

3)在哪里包含代码并不重要。出于纯粹的组织原因,最好在脚本的开头包含所有内容,但有时这是不可能的,这意味着您经常会看到代码包含在函数等中。

4) 与纯 HTML 文件相比,解析 PHP 文件存在一些延迟,因为该过程涉及到 Web 服务器扩展本身的“往返”,但是由于内部缓存机制等,延迟很难发现,如果不是的话几乎不可能在统计上证明。

编辑:如果您担心您的网站性能,一个好的起点是一些 Google Chrome 扩展,例如Page SpeedSpeed Tracer。它们将帮助您查明可能会降低网站性能的常见问题。

对于服务器端,使用代码分析器来发现潜在的性能问题总是很好的,例如大量的函数调用等。为此,您可以使用带有出色分析器和WebGrind的xDebug PHP 调试器来分析性能本身。

于 2011-08-07T10:06:09.360 回答
2

以前下载的 html 页面只包含必要的文本。现在下载了一个较小的 html 页面,但始终包含一个大的 php 文件,无论 html 使用更多或更少的行。

我不喜欢这种方法。为什么要加载不必要的东西?此外,随着您的网站扩展,它可能会成为一个非常臃肿的文件。

还有其他方法,例如:

1)从数据库中获取文本。

2) 根据语言将文本存储在单独的文件中。即使您是 php 新手,您也可以轻松做到这一点。它应该比您当前的解决方案更快。

关于你的问题:

When a php file is included (include_once(file.php); or

require_once(file.php);) 发生了什么?file.php 的内容是否被复制到 html 中?它只是用来对语言处理器说“如果您需要解析名称,您可能需要查看 file.php”?

当您包含或需要一个文件时(并且如果它成功加载),服务器将执行您在其中的任何代码。

对于更详细的答案,这是一个非常广泛的问题,请查看一些文献。

Should a php be included right before being used, or should be a

一般包括在页面顶部,获得最终将沿 html 页面使用的大部分 php?

这两种方法都是有效的,适用于不同的情况。有时您需要在其他任何事情发生之前执行并因此包含一些代码(在您的情况下,它可能是识别应该使用哪种语言)。其他时候你可能想要包含页脚,所以只有在底部的某个地方包含它才有意义。

Finally, does php increase a page loading time?

视情况而定,你必须自己衡量。但是没有理由远离 php。

于 2011-08-07T10:54:35.657 回答
0

这一切都取决于。为了,

  1. 不。当您说 时include,PHP 会执行所有操作file.php,然后继续执行其中的操作include
  2. 这取决于。我认为 1 页/语言设置会慢一些。
  3. 没有区别。我通常把它们放在最上面,因为一切都在同一个地方。
  4. 可能会,但我不这么认为。

不,PHP Speedy 负责缩小和合并您的 JavaScript 和 CSS。缩小意味着:

div#content {
    color: #000;
}

变成这样:

div#content{color:#000;}
于 2011-08-07T10:01:44.840 回答
0

是的,当您使用 PHP 时,请求需要更长的时间,但较小的请求根本不需要太多时间。从 PHP 到 HTML 的区别并不明显。

当您包含某些内容时,PHP 会将其解析为一个 php 文件(并且每次包含都需要从 HDD 加载文件)。

于 2011-08-25T15:40:35.760 回答