首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型CCK窗体上可怕的前端性能=糟糕的UX。我有什么选择?

大型CCK窗体上可怕的前端性能=糟糕的UX。我有什么选择?
EN

Drupal用户
提问于 2012-04-10 14:17:16
回答 2查看 767关注 0票数 7

对于我的一种内容类型,我有一个相当大的节点表单。假设它有大约100个字段。这些字段中有很多是具有无限值的文本值,因此用户使用AJAX按钮向每个字段“添加另一个项”。从视觉上看,这个表单并不那么吓人,因为我使用了Field组来保持合理。

问题:单击“添加另一项”非常慢。就像很慢。

我想这是服务器性能的问题,但后来我在Firebug中查看了它--这个请求实际上并不需要那么长时间,但是哇--客户端CPU的使用率(在Chrome、Firefox和我尝试过的其他浏览器中)达到了100%,并停留在那里长达11-12秒,然后AJAX请求就完成了。

太疯狂了。

所以现在我不确定我的选择是什么。我能以某种方式把这个表格拆开吗?工作流风格?很多人提到字段组是组织大量字段的一种方式,但这显然无助于性能的提高。

任何帮助都很感激。

EN

回答 2

Drupal用户

发布于 2012-12-08 10:38:07

我确实有这个问题,我可以确认答案#1 -使用多步形式改进的性能,虽然它仍然是缓慢的。

问题是,当Ajax触发时,整个表单都是在后台重新生成的。如果表单很大,这似乎会对服务器CPU产生巨大的需求。

多步表单是一种改进事物的好方法,但不幸的是,它并不总是合适的--在我的例子中,客户拒绝了它,因为他们觉得用一步一步的线性方式完成表单太烦人了。他们希望能够从制表符跳到另一个标签,而不需要在两者之间存钱。

除了修复Drupal核心,使重建表单不需要20秒的最大CPU之外,我能想到的唯一解决方案是在一个高CPU托管包上尝试这个站点,例如在Amazon上。这将是我的下一步。

不太了解Drupal和Ajax,我会将其称为某种bug。我听说在Drupal 8中Ajax的性能正在得到改善,所以我非常怀疑在D7中解决这个问题会付出多大的努力。

如果我在项目开始时就知道了这一切,我可能会尝试解决方案,比如在一个选项卡式面板上组合几个节点表单--以更有创意的方式分解服务器负载。

票数 2
EN

Drupal用户

发布于 2012-05-07 11:42:54

您可能应该使用多步表单。这几乎可以很容易地使用CTools模块套件来执行。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/27971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档