PHP选项卡或单独的页面

时间:2014-09-17 05:47:45

标签: php performance tabs

我对项目中的标签有疑问。它是一个用户视图页面,里面有多个标签。每个选项卡都有详细信息,如用户基本信息,社交个人资料信息,技能等。当前设置是具有$_GET['tab']值的PHP选项卡。每个选项卡都有不同的$_GET['tab'],if条件检查$_GET['tab']变量并在该选项卡中加载包含文件的内容。此页面中有大约10个选项卡和10个条件。

页面本身还有其他包含文件,如页眉,页脚,侧边菜单等。

我和我的朋友对此进行了讨论,他建议为每个标签设置单独的页面,并避免页面中的条件。

我的问题是:

  1. if条件的数量是否真的会改变页面的性能?
  2. 我应该切换到单独的页面并查看可视标签吗?

2 个答案:

答案 0 :(得分:0)

我认为最好的方法是拥有一个index.php文件,该文件具有$_GET['tab']检查,并使用require_once()include()加载标签。

index.php结构示例:

<?php

//...

require_once('header.php');

//...

if ($_GET['tab'] == '1')
{
    require_once('first_tab.php');
}
else if ($_GET['tab'] == '2')
{
    require_once('second_tab.php');
}

//...

require_once('footer.php');
?>

没有理由担心性能问题。使用此逻辑可以更轻松地获得更清晰的代码并避免使用1k行文件。

答案 1 :(得分:0)

理想情况下,您应该以这样的方式编写代码:脚本在服务器上的最短时间内完成处理(使用更少的资源),并且页面输出在浏览器上最快地返回给用户。然而,有时其他事情如开发和维护时间也会出现。即,如果您可以节省开发和维护的大量时间,即使它可能导致脚本运行时间增加几分之一毫秒,您也可以使用该选项。所以你应该总是在任何这种情况下找到最好的案例场景。

在这种情况下,您将拥有一个包含多个标签的页面。所以只需比较两种方法:

包含10个标签的单页:

<强>优点: 只需要一个文件。但是,这里的开发和维护时间或多或少相等。因为虽然您不必创建另一个页面并包含模板文件,但您必须添加IF语句。对于维护,当删除选项卡时,您必须转到相应的if部分并删除代码。使用另一个选项,您可以删除该文件。

<强>缺点: 它最多需要9个IF语句才能返回结果集,甚至显示404错误页面(即无效的$ _GET值)。

有10个不同的页面:

<强>优点: 不需要IF语句。因此,加载任何选项卡以及返回404错误页面会更快一些。

<强>缺点: 您需要将模板复制到10个文件中。但是,由于选项卡计数永远不会太多,并且通过复制第一个文件来创建它们会非常容易,因此不会花费太多时间。加上那个,其他方法仍然需要你添加if语句,就开发时间而言没有太大区别。

所以我会选择多个静态文件的第二个选项。如果您要拥有大量动态页面(标签),那么$ _GET选项将是首选,因此您不需要创建许多静态页面。由于标签永远不会更多(我估计最多10个),我想在这里推荐第二个选项。

注意:上述比较是在具有10个IF和10个分离页面的单页之间进行的。对于带有$ _GET文件的单页包含白名单(单IF)选项,与单独页面相比的性能差异甚至更小,因为404页面将在单个IF&amp;数组检查而不是10个IF。因此,就发展而言,你最终可以做到最容易做到的事情。