代码之家  ›  专栏  ›  技术社区  ›  Scorchio

用dom-优缺点构建(x)HTML输出?

  •  3
  • Scorchio  · 技术社区  · 14 年前

    我刚开始有一个新的网站,我决定使用住所建设完整的网站。

    你觉得这个怎么样,够快吗?我希望它比基本的打印方法慢一点。我更喜欢domOne,因为它在构建最终输出时具有更大的灵活性,更不用说无错误的XHTML了。无论如何,我至少想做一些速度比较。

    你能给我推荐一些(也许是完全显而易见的)保持PHP代码干净(即保持HTML在最低级别)的想法吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Community T.Woody    7 年前

    够快吗?当然,这完全取决于你的网站。对于一个普通的或原型站点,这是可以的,但我当然不想在一个复杂的、高流量的站点上部署一个DOM模板化解决方案。

    您将无法通过这种方式生成HTML兼容的XHTML;您必须在 saveXML 它产生纯的、不兼容IE的XHTML,以及 saveHTML ,创建HTML4。像这样的CDATA元素 style script 可能还需要注意。

    在内容创建方面,DOM调用也非常冗长,比如在没有助手函数或框架的帮助下在JavaScript中创建节点。与php模板相比,我不确定结果代码是否可读。

    通过使用一致的标记树,将PHP结构处理为 <?php if (condition) { ?> <?php } ?> 就好像它们是XML开始和结束标记一样,总是以“格式良好”的样式嵌套和缩进它们。参见例如。 this question 进行讨论。

        2
  •  3
  •   Frank Shearar    14 年前

    您可以有一个小部件类,它具有复选框、文本区域等方法。视图/控制器基类定义了一个函数addcontent($astring)。当你构建一个表单时,你会说

    $builder = new Widget();
    $this->addContent($builder->textArea("Description", $description, 5, 100);
    $this->addContent($builder->radioGroup("Platform", array("FreeBSD", "Linux", "Windows"), $platform, 100);
    

    在哪里?

    public function textArea($name, $value, $numLines, $width) {...}
    public function radioGroup($title, $nameArray, $selectedValue, $width0 {...}
    // etc.
    

    然后,您的表单对HTML一无所知:它们严格使用UI组件操作。小部件类的子类可能产生HTML或其他东西。