高级自定义字段在管理屏幕上很慢
Posted
技术标签:
【中文标题】高级自定义字段在管理屏幕上很慢【英文标题】:Advanced Custom Fields is slow on admin screens 【发布时间】:2016-12-02 14:45:59 【问题描述】:我正在使用 ACF 在我的页面中设置一系列插槽。所以管理屏幕包含一系列灵活的字段,每个字段都可以是以下之一:
发布 类别 标签在前端工作得很好。我可以拖放,从数据库中选择帖子/类别/标签等,并且通常玩得很开心。
不幸的是,当尝试向后端页面添加新插槽或加载它时,添加新行所花费的时间正在扼杀它。我那里只有几行,但已经花费了令人无法接受的时间;我很确定当我再添加几个时,我们会开始出现超时。
我能找到的关于这个问题的唯一信息是 ACF 论坛上的这个支持线程 (https://support.advancedcustomfields.com/forums/topic/slow-backend-v-2-5-7/),它基本上说:
是的,如果你有一个大数据库并尝试使用灵活的字段,它会做到这一点。
我也在使用 ACF-JSON,但效果不明显。
有没有其他人遇到过这个问题?你做了什么来解决它?还是不得不放弃?
(理想情况下,我的解决方案会保留灵活的字段,因为它们正是客户在这种情况下想要的 - 但如果有另一种解决方案可以让他们在线性时间内编辑后端,我也对此感兴趣。 )
【问题讨论】:
【参考方案1】:这是由于 ACF 加载其转发器字段和灵活字段的方式。灵活字段中的所有布局都加载到 dom 中并隐藏,并且绝对大量的 javascript 逻辑应用于所有布局。当您单击以添加新的“插槽”时,它会运行隐藏布局的克隆,并将所有必要的事件处理程序附加到克隆。
如果您检查页面 DOMContentLoaded 与加载(最终渲染事件)的时间轴,DOMContentLoaded 实际上大部分时间都非常快,但加载(加载 html 后发生的所有事情)是大部分时间消耗的,和记忆。
我能做的最好的事情是为所见即所得的内容字段激活新的“延迟初始化”选项,并为选择、复选框和单选字段禁用“风格化 UI”和“AJAX”选项。
最终,最大的问题来自于在中继器/弹性域中深度嵌套的中继器/弹性域。尽可能避免嵌套它们,页面加载时间会显着减少。
【讨论】:
【参考方案2】:如果您正在使用任何需要访问任何页面上的字段的扩展程序,例如 LastPass。禁用该扩展程序将大大加快页面速度。
【讨论】:
以上是关于高级自定义字段在管理屏幕上很慢的主要内容,如果未能解决你的问题,请参考以下文章