如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题

文件Admin-ajax.php 在 WordPress 网站中起着关键作用,它是管理 AJAX 请求的核心文件,让你能够实现动态功能,比如实时通知、异步表单提交、无限滚动等,而无需刷新整个页面。

admin-ajax.php 被过度使用时,它可能成为导致网站性能下降的罪魁祸首。这篇文章将深入探讨 admin-ajax.php 的功能、其过度使用对性能的影响,帮助你诊断和修复相关问题,从而保持 WordPress 网站的最佳性能。

图片[1]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

什么是 admin-ajax.php?

admin-ajax.php 是 WordPress 核心文件,负责处理网站上的所有 AJAX 请求。它相当于一个信使,在页面与服务器之间传递数据,而无需重新加载整个页面。

admin-ajax.php 的主要功能

  • 支持异步通信:AJAX(Asynchronous JavaScript and XML)允许网站无需刷新页面即可向服务器发送和接收数据,从而提升用户体验。
  • 处理多种任务:admin-ajax.php 可处理多种后台任务,如提交表单、加载评论、动态更新内容、实现无限滚动以及显示实时通知。
  • 充当中介:当插件或主题需要在后台运行某些操作时,会通过 admin-ajax.php 发送 AJAX 请求,后者则处理这些请求并返回必要的数据。

admin-ajax.php 是许多 WordPress 动态功能的关键所在。

admin-ajax.php 高使用率对 WordPress 网站的影响

图片[2]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

admin-ajax.php 对于 WordPress 网站的动态功能至关重要,但其过度使用可能导致严重的性能问题。以下是高使用率对网站的影响:

  1. 增加服务器负载:每个 AJAX 请求都会消耗服务器资源,如 CPU 和内存。当请求数量过多时,服务器可能无法承受,导致网站响应速度减慢甚至崩溃。
  2. 页面加载缓慢:当 admin-ajax.php 处理大量请求时,页面加载时间会显著增加。这会对用户体验造成负面影响,并可能损害你的 SEO 排名。
  3. 网站不稳定:过度使用 admin-ajax.php 可能导致“500 内部服务器错误”或超时问题,从而使网站不稳定。
  4. 用户体验差:由于 admin-ajax.php 负载过高,网站运行缓慢,功能响应不及时,导致用户体验下降,进而可能提高跳出率。
  5. 插件冲突:某些编码不良的插件可能会触发过多的 AJAX 请求,使问题更加复杂。
  6. 安全漏洞:虽然不常见,但未优化的 AJAX 请求可能会增加安全风险。

如何诊断 WordPress 网站上 admin-ajax.php 的高使用率?

为了找出 admin-ajax.php 过度使用的根源,可以使用多种工具来帮助你分析网站性能。以下是几个推荐的工具:

1. GTmetrix

GTmetrix 是一个网站性能分析工具,可以使用它来检测 admin-ajax.php 是否对网站性能产生了负面影响。操作步骤如下:

  1. 访问 GTmetrix 网站并登录。
  2. 输入网站的 URL 并点击 Test Now
图片[3]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 运行性能检查后,转到 Waterfall(瀑布图)选项卡,搜索 admin-ajax.php
图片[4]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 查看该请求的加载时间,如果它比其他请求显著更长,说明该脚本可能导致了性能问题。
图片[5]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

2. Chrome 开发者工具

Chrome 浏览器的开发者控制台也是一个非常有效的工具,您可以用它来检测 admin-ajax.php 的使用情况:

  1. 访问你的网站,右键点击页面并选择 检查
图片[6]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 转到 Network(网络)选项卡并重新加载页面。
图片[7]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 在过滤框中输入 admin-ajax,即可查看相关请求的详细信息。
图片[8]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

通过这些工具,可以确定哪些请求导致了性能问题,并着手解决。

如何减少 WordPress 中 admin-ajax.php 的高使用率?

修复 admin-ajax.php 的高使用率问题取决于具体的原因。以下是一些常见的解决方法:

1. 禁用问题插件

如果某个插件生成了过多的 AJAX 请求,可以通过禁用该插件来解决问题。可以逐个禁用插件并观察网站性能的变化,以确定罪魁祸首。如果找到问题插件,可以联系插件开发人员或寻找替代方案。

图片[9]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

2. 启用缓存

启用缓存可以显著减少服务器负载,降低对 admin-ajax.php 请求的依赖。通过存储网站页面的静态版本,缓存可以减少重复的数据库查询和 AJAX 请求。推荐使用 W3 Total CacheWP Super Cache 插件来管理缓存。选择“延迟加载图像”功能可以进一步优化性能。

图片[10]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

3. 控制 WordPress Heartbeat API

WordPress Heartbeat API 实现了浏览器与服务器之间的实时通信,但它可能导致 admin-ajax.php 使用率过高。可以使用 Heartbeat ControlLiteSpeed Cache 插件来限制 Heartbeat API 的频率,减少对服务器的影响。

步骤

  1. 安装并激活 LiteSpeed Cache 插件。
图片[11]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 在 WordPress 后台,导航到 LiteSpeed Cache > 工具箱 > Heartbeat
图片[12]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 开启 Heartbeat 控制,并调整 TTL 的值以控制通信频率。
图片[13]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 开启 Heartbeat 控制并调整 TTL
    • Heartbeat 设置中,可以看到几个控制选项:
      • Enable/Disable Heartbeat:启用或禁用 WordPress 的 Heartbeat API。
      • TTL(Time-to-Live)设置:调整 Heartbeat API 调用的频率(即通信间隔时间)。TTL 值越大,心跳通信的频率就越低。默认情况下,WordPress 的 Heartbeat API 调用频率为 15-30 秒。
    • 调整 TTL 设置
      • 将 TTL 设置为 60 秒 或更长时间,减少 Heartbeat API 请求的频率。通常建议设置为 60 秒以上,以降低服务器负载。
      • 如果你发现某些功能依赖实时通信(如草稿自动保存),可以保持较短的 TTL 时间。否则,较长的 TTL 时间能够有效减少对服务器的影响。
图片[14]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  1. 保存设置
    • 完成设置后,点击 保存更改 按钮确保调整生效。

4. 手动优化 Heartbeat API

如果不想使用插件,可以通过手动方式在 functions.php 文件中添加代码来限制 Heartbeat API:

add_action( 'init', 'disable_heartbeat', 1 );
function disable_heartbeat() {
    wp_deregister_script('heartbeat');
}

通过这一方法,可以手动完全禁用 Heartbeat API。

图片[15]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应
  • 限制 Heartbeat API 的调用频率

如果不想完全禁用 Heartbeat API,只是想降低其调用频率,可以使用以下代码片段:

add_action( 'init', 'modify_heartbeat', 1 );
function modify_heartbeat() {
    // Set Heartbeat interval to 60 seconds
    wp_deregister_script('heartbeat');
    wp_register_script('heartbeat', admin_url('admin-ajax.php'), array('jquery'), false, true);
    wp_localize_script('heartbeat', 'heartbeatSettings', array('interval' => 60));
}

此代码将 Heartbeat API 的调用频率从默认的 15-30 秒延长至 60 秒。可以根据需要调整 interval 的值(例如,120 秒)。

  • 仅禁用后台或前端的 Heartbeat API

如果你只想限制或禁用某一部分(比如后台或前端)的 Heartbeat API 调用,可以根据需要使用以下代码片段:

图片[16]-如何优化 WordPress 中的 admin-ajax.php:减少高使用率带来的性能问题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

禁用后台仪表盘(Dashboard)中的 Heartbeat API

add_action( 'admin_enqueue_scripts', 'disable_heartbeat_in_dashboard', 1 ); function disable_heartbeat_in_dashboard() { wp_deregister_script('heartbeat'); }

禁用文章编辑器中的 Heartbeat API(例如:禁用自动保存草稿):

add_action( 'admin_enqueue_scripts', 'disable_heartbeat_in_post_editor', 1 ); function disable_heartbeat_in_post_editor() { global $pagenow; if ( $pagenow != 'post.php' && $pagenow != 'post-new.php' ) return; wp_deregister_script('heartbeat'); }

禁用前端(Frontend)页面中的 Heartbeat API

add_action( 'wp_enqueue_scripts', 'disable_heartbeat_in_frontend', 1 ); function disable_heartbeat_in_frontend() { wp_deregister_script('heartbeat'); }
  • 在完成代码添加后,点击页面底部的 更新文件(Update File)按钮。确保更改已成功保存,并访问你的网站测试 Heartbeat API 的使用情况。

进一步优化建议:

  • 禁用不必要的 Heartbeat API 请求:如果你的网站没有依赖 Heartbeat API 的功能(如前端页面上的实时通知),可以在 LiteSpeed CacheHeartbeat Control 插件中禁用前端或仪表盘的 Heartbeat 调用。
  • 结合缓存优化:除了限制 Heartbeat API 调用,还可以利用 LiteSpeed Cache 提供的缓存功能(如页面缓存、数据库缓存、对象缓存)进一步优化网站性能。

总结

优化 admin-ajax.php 文件对于保持 WordPress 网站的良好性能至关重要。它处理动态功能中的所有 AJAX 请求,但如果管理不当,会导致网站负载过高、性能下降。通过使用工具诊断并优化请求、启用缓存、限制 Heartbeat API,你可以大幅减少 admin-ajax.php 的负担,提升网站的速度和稳定性。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容