2013-07-01 60 views
0

我只是想知道如果通过PHP加载的文件包括被越来越浏览器(我的预期行为)浏览器缓存php包含文件吗? (PHP和模板)

IM试图找出对我的设计模板引擎更好的办法缓存..

我一直使用php包括页眉,页脚等。对于模板

但现在考虑回到使用Dreamweaver模板瓦特/ c基本上写每个网页w /完整的文档代码(包括标题,页脚和所有),并于,比如说,头部分的更新,Dreamweaver将重写使用上述模板中的所有页面。

我曾经认为这是一种粗糙的,不讨人喜欢的模板方式,但现在我意识到'这真的很聪明..没有更多的进程和其他进程,只是简单的好旧页面服务大部分所需视觉数据。我“认为”这比apache为每个包含运行更多的线程要快。而且,该页面被完全缓存..

喜欢逛home.php第二次将导致以最小的带宽成本.. VS PHP的包括,如果没有高速缓存,具有发送,例如的header.php数据,一次又一次地在浏览器中每次访问。

而且,DW模板实际上使我更容易代码/设计,其中包括PHP在visiual意见往往渲染/工具

只是想知道...

PS 作为背景资料,我“已经实际使用DW模板瓦特/ PHP模板(有点用DW的混合方式)..我已经得到了很舒服瓦特/此方法,并发现它是真的直线前进..因此,即时通讯不是一个真正的陌生人要么DW或PHP模板。

回答

4

PHP的include与浏览器无关,浏览器不知道任何内容在服务器上。所有的浏览器都可以看到一个很长的HTTP文档,它在服务器上的组装方式并不重要。浏览器将缓存它一切。

你想要的是缓存文件服务器端,所以它不必在每个请求上重新组合。

  SERVER SIDE     CLIENT 

+-----------+  +--------+ | +---------+ 
|   |  |  | | |   | 
| PHP | --> | Apache | --|--> | browser | 
|   |  |  | | |   | 
+-----------+  +--------+ | +---------+ 

    ^   ^    ^
     |    |     | 
include happens  document   sees only 
    here   already fully  complete HTML 
       assembled here document regardless 
+0

tnx快速输入.. – BrownChiLD

2

您知道,浏览器如何生成页面并不重要。您可以使用PHP,Python,Java,Ruby或其他语言 - 它根本不管用。 Apache服务器(在PHP的情况下)解析脚本并将生成的HTML页面返回给浏览器。它是由浏览器缓存默认 - 除非你使用编译<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">这表明该页面不应该被缓存的浏览器。

当您存储和在HTML,而不是它只是节省您解析阶段,从而节省服务器上的资源,并普遍较快是一个脚本来提供网页。这就是为什么最发达的web框架包括生成,存储和服务于解析处理的页面,而不是一个脚本“原始”的能力。典型的情况是在PHP中检查页面是否被修改。如果它被修改,则重新生成页面;如果没有 - 提供HTML代码而不是脚本代码。您也可以基于此方案超时。它是在页面生成需要从一个不经常更改数据库中获取大量的信息,你的web应用程序的部分特别有用。例如,在产品或产品类别列表较长的页面上 - 分别添加新产品或产品类别时更新页面。因此,“模板化”(实际上是为页面的完全解析版本提供服务,而不是其脚本原件)可以节省服务器资源和页面交付时间,而不是浏览器请求。