Ich hatte ein Formular zum Hinzufügen von Knoten mit ungefähr 50 Feldern, hauptsächlich Text mit 1 Feldsammlung (mit weiteren 5 Feldern) und einigen Entitäts- und Begriffsreferenzen.
Das Laden der Seite dauert ungefähr 30 Sekunden, wodurch sie unbrauchbar wird.
Es gibt mehrere langsame Abfragen ( 99.28 - DrupalDatabaseCache :: getMultiple , 34.21 - views_plugin_query_default :: execute , 20.51 - DrupalDefaultEntityController :: load , 18.46 - DrupalDatabaseCache :: getMultiple, 17.46 - DrupalDatabaseCache :: getMultiple .. sie weitergehen)
Die Cache :: getMultiple-Abfrage enthält 1087 Platzhalter und die EntityController :: load 1084 Platzhalter.
Wenn Sie in der Feldsammlung auf "Ein weiteres Element hinzufügen" klicken, dauert der Vorgang weitere 30 Sekunden.
Was kann ich tun, um die Ladezeiten der Seite zu beschleunigen?
BEARBEITEN: Ich habe gerade APC installiert, das alle Caching-Abfragen entfernt, aber das Problem nicht gelöst hat - immer noch etwa 30 Sekunden Ladezeit. Ich glaube nicht, dass die langsamen Ladezeiten mit dem Caching zusammenhängen. Wird etwa 280 MB Speicher benötigt, wird die Seite erstellt.
BEARBEITEN: Durch Entfernen der Feldsammlung, Installieren von Memcache und Entitycache wurde die Ladezeit um 20 Sekunden verkürzt. 10 Sekunden zum anfänglichen Laden der Seite und weitere 10 Sekunden pro Ajax-Anforderung sind jedoch immer noch nicht akzeptabel. Wie funktionieren Webformulare mit einer großen Anzahl von Feldern? Vielleicht wäre das eine bessere Option?
quelle
Antworten:
Haben Sie darüber nachgedacht, mehrstufige Formulare für Ihre Knotenerstellung zu verwenden?
Da Sie viele Felder haben, können Sie dies beim Laden mehrerer Seiten über verschiedene logische Schritte tun. Es gibt viele Tutorials für die Implementierung von mehrstufigen Formularen in Drupal, und das Beispielmodul wird mit einem geliefert.
quelle