php会增加页面加载时间吗?

时间:2011-08-07 09:53:46

标签: php html performance pagespeed

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

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

问题:

  1. 当包含php文件(include_once(file.php);require_once(file.php);)时会发生什么? file.php的内容是否被复制到html?它只是用来对语言处理器说“如果你需要解析一个名字,你可能想看看file.php”?
  2. 更有效(速度);有一个大的PHP与每个html页面的每种语言; 每个html页面只有一个php文件,只包含该页面所需的代码?
  3. 在使用之前是否应该包含php,应该是页面顶部的一般包含,它将获得最终将在html页面上使用的大部分php?
  4. 最后,php会增加页面加载时间吗?
  5. P.S:有人试过PHP Speedy吗?它真的有用吗?它有任何问题(兼容性)吗?


    我发现了:

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

4 个答案:

答案 0 :(得分:4)

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

2)除非你有大量的访问者,否则几乎不会注意到包含一个大文件和几个较小文件之间的区别。但是,它的优良做法是仅包含实际需要的部分,因为这样可以节省Web服务器内存和资源,这可能会在发生大量请求时出现问题。

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

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

编辑:如果您担心自己的网站效果,那么可以选择一些Google Chrome扩展程序,例如Page SpeedSpeed Tracer。它们将帮助您查明可能会降低网站性能的常见问题。

对于服务器端,总是很好地使用代码分析器来查找潜在的性能值,例如大量的函数调用等。为此,您可以使用xDebug PHP debugger,它带有一个出色的分析器和WebGrind分析表现本身。

答案 1 :(得分: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
     

一般包含在页面顶部获取大部分PHP的内容   最终会在html页面上使用吗?

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

Finally, does php increase a page loading time?

取决于情况,你必须衡量自己。但是没有理由远离php。

答案 2 :(得分:0)

一切都取决于。按顺序,

  1. 否。当您说include时,PHP会在file.php中执行所有操作,然后继续使用include中的div#content { color: #000; }
  2. 这取决于。我认为1页/语言设置会慢一些。
  3. 没有区别。我通常将它们放在顶部,因为一切都在同一个地方。
  4. 可能,但我不这么认为。
  5. 不,PHP Speedy负责缩小和合并您的JavaScript和CSS。缩小意味着:

    div#content{color:#000;}
    

    成为这个:

    {{1}}

答案 3 :(得分:0)

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

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