大規模なCCKフォームでの恐ろしいフロントエンドパフォーマンス= UXの低下。私のオプションは何ですか?


7

コンテンツタイプの1つにかなり大きなノードフォームがあります。約100のフィールドがあるとします。これらのフィールドの多くは値が無制限のテキスト値なので、ユーザーはAJAXボタンを使用してこれらのそれぞれに「別のアイテムを追加」します。視覚的には、フィールドグループを使用して物事を合理的に保つため、このフォームはそれほど威圧的ではありません。

問題:「別のアイテムを追加」をクリックするのが非常に遅くなります。本当に遅いみたい。

サーバーのパフォーマンスだと思ったのですが、Firebugでチェックアウトしました-要求は実際にはそれほど長くかかっていませんが、WOW-クライアント側のCPU使用率(Chrome、Firefox、および私が試した他のブラウザー)は100%に達していますそこに最大11〜12秒間留まると、AJAXリクエストが完了します。

それは非常識です。

したがって、現時点では、自分のオプションが何であるかわかりません。どういうわけかフォームを分解できますか?ワークフローngスタイル?多くの人々は、フィールドグループを大量のフィールドを整理する方法として言及していますが、それは明らかにパフォーマンスに役立ちません。

助けてくれてありがとう。

回答:


2

私はまさにこの問題を抱えており、答え#1を確認できます-マルチステップフォームを使用するとパフォーマンスは向上しましたが、まだ遅いです。

問題は、Ajaxが起動すると、フォーム全体がバックグラウンドで再構築されることです。これは、フォームが大きい場合、サーバーのCPUに大きな負荷をかけるようです。

マルチステップフォームは物事を改善するための良い方法ですが、残念ながら常に適切であるとは限りません。私の場合、クライアントは、ステップバイステップの線形でフォームを進める必要がありすぎて煩わしいと感じたため、フォームを拒否しました。仕方。途中で保存せずにタブからタブにジャンプできるようにしたかったのです。

Drupalコアを修正してフォームの再構築に最大CPUの20秒を必要としないようにする以外に、考えられる唯一の解決策は、Amazon AWSなどの高CPUホスティングパッケージでサイトを試すことです。これが私の次のステップです。

DrupalコアとAjaxについてよく知らなければ、私はこれを一種のバグと呼びます。AjaxのパフォーマンスはDrupal 8で改善されていると聞いたので、D7でこれを解決するために多くの努力が払われることを真剣に疑っています。

私がプロジェクトの開始時にこれをすべて知っていた場合、1つのタブ付きパネルで複数のノードフォームを組み合わせるなどの解決策を試した可能性があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.