3

我正在尝试降低我网站上的加载时间。它加载非常缓慢,并且 iv 尝试了几种解决方案。

  1. 使用 gmetrix 解决优化图像等问题。
  2. 使用 pingdom 查看问题所在。

如下链接中列出的是 pingdom 统计信息。 http://tools.pingdom.com/fpt/#!/cKIvOz/http://healthyeatingandliving.ca/

我不知道 admin-ajax.php 是什么以及为什么它的负载如此之高。另外,如果有人知道文件/路径列中的第一行是什么。

如果还有什么我可以做的来减少加载时间,因为现在尝试编辑内容很痛苦。感谢所有关注这个的人。

4

5 回答 5

3

您应该将此代码添加到主题内的functions.php。

add_action( 'init', 'my_deregister_heartbeat', 1 );
function my_deregister_heartbeat() {
    global $pagenow;

    if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow )
        wp_deregister_script('heartbeat');
}

此代码将禁用 admin-ajax.php 功能并将 CPU 减少 75%。

于 2015-02-11T11:20:07.383 回答
2

检查器中网络选项卡的屏幕截图 使用心跳控制插件并禁用它。此外,在 gtmetrix 中,单击瀑布图,然后单击图中所示的帖子以找出问题所在。

这是从名为wptouch的 wp 插件调用 ajax 功能。

于 2015-09-20T06:02:18.773 回答
1

ajax 加载时间的问题在于,即使您在某些页面上没有商店所需的任何功能,也会运行 woocommerce 脚本。我会考虑这些人做了什么,并从您的常规页面中删除了脚本(抱歉,该网站有点旧,因此您可能需要仔细检查并更新入队脚本变量)。但是要了解它的要点,您基本上将删除不需要 woocommerce 功能的页面不需要的插件。

http://wordimpress.com/how-to-load-woocommerce-scripts-and-styles-only-in-shop/

或者

http://gregrickaby.com/remove-woocommerce-styles-and-scripts/

您还可以添加一些条件标签,以便它不会专门加载到某些页面上。

https://codex.wordpress.org/Conditional_Tags

于 2014-03-28T06:50:28.103 回答
1

我花了几天的时间试图解决同样的问题,我什至使用了 deregister_heartbeat 代码 - 没有效果。我想分享一个解决方案,以防止 Apache / MySQL 在您尝试找出发生的情况时死亡。

最后,在另一台服务器上创建站点的测试副本并切换到默认主题后,我能够确定子主题中的扩展引擎正在进行 Ajax 调用,这些调用以某种方式超过了取消注册的心跳 - 我们'现在已经放弃了引擎,可能会从头开始编写子主题。

为了给我一些时间,同时跟踪有问题的东西,我需要一种方法在它们占用所有可用空间之前从网络服务器中删除线程——而且我们有一个很大的网络服务器——尽管如此,它仍然导致站点在 Apache 运行仅一个小时后崩溃重新开始。您当然可以使用硬 Apache 重启(在 Debian 机器上apachectl restartservice apache restart)——但这会杀死所有连接——并且在多主机环境中它会搞砸某人。如果您在 *NIX 系统上,您可以执行以下操作,它需要w3m(或可以从 CLI 运行转储的等效盲文模式浏览器,如 elinks、lynx 或 links)

#!/bin/bash
kill `w3m -dump http://<server address>/server-status | grep "admin-ajax.php"|awk '{print $2}'`

确保在杀死后和脚本结束时立即获得反引号。我们基本上使用 w3m 来访问服务器状态页面(您需要在您的 Apache 配置中启用此功能 - 使其仅可从本地 IP 地址使用,它提供了很多东西) - 我们通过 grep 管道传输结果只是磨练处理admin-ajax.php 的进程——然后我们将这些行输入到awk中,awk 基本上将相关PID编号的列表返回给kill命令。

结果是 Apache 中的进程线程将会死掉 - 但会在任何服务器状态列表中显示为没有当前进程的开放插槽的一小段时间- 对您站点的后续命中将再次以正常方式占用这些线程

我们把整个事情放到每 5 分钟左右运行一次的cron任务中——效果是我们让线程出现了,但它们从来没有停留足够长的时间来引起问题。

于 2015-03-13T10:03:28.137 回答
1

另一个插件或主题正在使用诸如购物车小部件之类的东西,当您添加到购物车等时会刷新,这使用 admin-ajax 并将加载到每个页面上,如果您停用 WooCommerce,那么问题就会消失,但问题取决于WooCommerce。

于 2014-12-09T17:00:20.550 回答