当前位置: 首页 > 面试题库 >

打开/关闭标签和性能?

云镜
2023-03-14
问题内容

这可能是一个愚蠢的问题,但是作为PHP的新手,我想知道在HTML模板代码中频繁打开和关闭PHP标签是否存在任何与性能相关的问题,如果是,那么最佳实践是什么?使用PHP标签?

我的问题不是关闭标签的重要性/正确性,或者不是哪种类型的代码比另一种更具可读性,而是关于文档的解析/执行方式及其对性能的影响。

为了说明,请考虑以下两个极端:

混合使用PHP和HTML标签:

<?php echo
   '<tr>
       <td>'.$variable1.'</td>
       <td>'.$variable2.'</td>
       <td>'.$variable3.'</td>
       <td>'.$variable4.'</td>
       <td>'.$variable5.'</td>
   </tr>'
?>
// PHP tag opened once

分离PHP和HTML标签:

<tr>
   <td><?php echo $variable1 ?></td>
   <td><?php echo $variable2 ?></td>
   <td><?php echo $variable3 ?></td>
   <td><?php echo $variable4 ?></td>
   <td><?php echo $variable5 ?></td>
</tr>
// PHP tag opened five times

即使只是听说它没有区别,也有兴趣听取一些对此的看法。

谢谢。


问题答案:

为您准备正确的3条简单规则:

  • 没有语法问题可以影响性能。数据操作确实如此。
  • 说到性能,仅以 分析 结果为后盾。
  • 过早的优化是万恶之源

性能问题很难理解。建议新手不要考虑它。因为他们总是对琐碎的事情印象深刻,却看不到真正重要的事情。只是因为缺乏经验。

您的问题也一样。想象一下,您将永远有所不同。例如,即使是一个大方法,其速度也要快2倍。哦,我的2次!我选择它并优化了我的应用程序,它现在运行速度提高了50%!

错了 。不是50%。您永远不会注意到甚至无法衡量这种速度的提高。因为您优化了仅占整个脚本运行时的0,0001%的部分。

对于大型HTML表格, 浏览器 需要很长时间才能呈现它。比您生成的要多得多。

性能分析是性能界的一个关键词。毫无疑问,如果其中没有“分析”一词,那么您可以毫无疑问地丢弃任何与性能相关的问题。同时,分析不是一门火箭科学。我只是在评估脚本不同部分的运行时间。可以使用诸如xdebug之类的探查器完成,甚至可以使用手动完成microtime(1)。而且只有在检测到最慢的部分之后,您才能开始测试。

在询问性能问题之前,学习配置文件。如果没有真正的原因,请学习不要问性能问题。

过早的优化是所有罪恶的根源 - D.Knuth。



 类似资料:
  • Selenium 2:打开新选项卡中的链接并关闭选项卡 但是它打开了一个窗口而不是一个标签,我无法控制延迟。我用的是硒3。使用带有JAVA的Selenium WebDriver,我试图自动化一个功能,我必须打开一个新的选项卡,在那里执行一些操作,然后回到以前的选项卡(父选项卡)。用firefox做这件事最好的方法是什么?

  • 我在嵌套的代码周围看到一些奇怪的行为 鉴于: 在Chrome中,这会导致 也就是说,它关闭开始标记并打开结束标记。我(当然)听说过“自动关闭标签”;我从没听说过“自动打开标签”。 IE11采用了一种不同的(可以说是更错误的)方式: 因此,它不会自动关闭打开的标记,但它会自动打开关闭的标记,从而导致不平衡的DOM树。 无论如何,我很好奇解决这个问题的正确途径是什么;我应该打开Chrome和IE错误跟

  • 问题内容: 我希望能够在Selenium 2中的新选项卡中打开链接。我也想在与页面完成交互后关闭该选项卡。这怎么可能,如果我有一个的标签? 我将Selenium 2的Java API与运行在Firefox 4上的Firefox驱动程序结合使用。 问题答案: 目前,Selenium WebDriver API没有任何处理选项卡的方法。在我希望看到一种语言绑定(例如Java)的实现之前,该项目确实需要

  • 在页面中收集各种链接后,我点击这些链接并将其收集成汤。现在的问题是,链接在新标签中打开。我想在代码打开新标签中的下一个链接之前关闭标签。下面是代码片段。收完汤后,请帮我把每个标签关上。 我用python 3.7硒铬驱动

  • 本章讨论的是如何进入和退出CGDB。有如下几种方法: 在命令行下输入 'cgdb' 运行CGDB 在GDB窗口输入 'quit' 或者按下 'Ctrl+D' 退出CGDB 在源代码窗口输入 ':quit' 也可以退出CGDB。这在GDB挂起或者运行一条耗时很长的指令时也同样起作用

  • 问题内容: 谁能告诉我如何使用webdriver关闭除第一个标签/主标签之外的所有打开的标签? 我在下面尝试过,但是它同时关闭了所有标签,包括第一个标签。 请帮我。 问题答案: 获取所有窗口句柄,然后遍历它们,将webdriver切换到新的句柄,然后调用close方法。显然跳过原始手柄,然后切换回其余手柄。 就像是;