管理员屏幕上的高级自定义字段很慢

时间:2016-07-28 09:33:26

标签: php mysql wordpress advanced-custom-fields

我正在使用ACF在我的页面中设置一系列插槽。因此,管理屏幕包含一系列灵活字段,每个字段可以是以下之一:

  • 分类
  • 标签

在前端工作得很好。我可以拖放,从数据库中选择帖子/类别/标签等,一般都玩得很开心。

不幸的是,当尝试向后端的页面添加新插槽或加载它时,添加新行所花费的时间就是将其删除。我在那里只排了几排,但它已经花了不可思议的长时间;我相当确定当我添加更多内容时,我们会开始超时。

我能找到的关于这个问题的唯一信息是ACF论坛上的支持线程(https://support.advancedcustomfields.com/forums/topic/slow-backend-v-2-5-7/),基本上说:

是的,如果您拥有一个庞大的数据库并尝试使用灵活的字段,它就会这样做。

我也使用ACF-JSON没有明显效果。

还有其他人遇到过这个问题吗?你做了什么来解决它?或者你不得不放弃?

(理想情况下,我的解决方案会保留灵活的字段,因为它们正是客户在这种情况下所需要的 - 但如果有另一种解决方案可以让他们在线性时间内编辑后端,我&# 39;我也对此感兴趣。)

2 个答案:

答案 0 :(得分:4)

这是由于ACF加载其转发器字段和灵活字段的方式。灵活字段中的所有布局都被加载到dom中并隐藏,并且绝对大量的javascript逻辑应用于所有这些布局。当您单击以添加新的"插槽"时,它会运行隐藏布局的克隆,并将所有必需的事件处理程序附加到克隆。

如果检查页面DOMContentLoaded vs load(最终渲染事件)的时间线,DOMContentLoaded实际上大部分时间都非常快,但加载(加载html后发生的所有事情)是大部分时间吃掉的东西,和记忆。

我能做的最好的事情是激活新的"延迟初始化" WYSIWYG内容字段的选项,并禁用" Stylized UI" " AJAX"选择,复选框和无线电字段的选项。

最终,最大的问题来自于在中继器/弹性域内嵌入深度嵌套的中继器/弹性域。尽量避免嵌套那些,页面加载时间会显着减少。

答案 1 :(得分:1)

如果您正在使用任何需要访问任何页面上字段的扩展名,例如LastPass。禁用该扩展程序会加快页面的速度。