使用 xhprof 分析 PHP 代码时,如何防止它破坏来自 JavaScript 客户端的 Ajax 调用?

Posted

技术标签:

【中文标题】使用 xhprof 分析 PHP 代码时,如何防止它破坏来自 JavaScript 客户端的 Ajax 调用?【英文标题】:When using xhprof profiling PHP code, how to prevent it from destroying the Ajax call from the JavaScript client? 【发布时间】:2010-11-18 01:55:30 【问题描述】:

当我使用 xhprof 分析 php 代码时,它工作正常。 我参考了 Lorenzo Alberton 编写的文档,http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/。

但是您知道,我们在 Web 应用程序中总是有很多 Ajax 调用。当我尝试在本文中包含header.phpfooter.php 时,如何防止它破坏来自javascript 客户端的Ajax 调用?

【问题讨论】:

【参考方案1】:

我也有同样的问题。我通过在 Ajax 响应脚本的顶部添加以下行来修复它。

global $_xhprof;        
@$_xhprof['display'] = false;

【讨论】:

【参考方案2】:

您是否尝试从代码中删除“Profiler 输出”链接? xhprof 不应该改变任何东西,因为它只是一个分析器。

您可以尝试使用 if !is_ajax 将其隐藏在 ajax 请求中。

function is_ajax()

return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');

【讨论】:

是的,我只是想删除“Profiler Output”,但是当请求是 ajax 调用时如何才能删除它? 我已经更新了我的答案,希望它适用于您的代码。【参考方案3】:

实现这一点的最佳方法是在您的config.php (https://github.com/preinheimer/xhprof/blob/master/xhprof_lib/config.sample.php) 中编写异常 URL

应用程序不会在这些 URL 上显示页脚链接(该功能在设计时考虑到了这个用例)。

【讨论】:

以上是关于使用 xhprof 分析 PHP 代码时,如何防止它破坏来自 JavaScript 客户端的 Ajax 调用?的主要内容,如果未能解决你的问题,请参考以下文章

XHProf 分析 - 如何获取分层配置文件?

如何识别 Xhprof 的瓶颈?

PHP性能分析工具xhprof的安装使用与注意事项

使用XHProf分析PHP性能瓶颈

php 性能分析工具 xhprof 使用

PHP性能追踪及分析工具xhprof的安装与使用