You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2017/12/15 18:11:29 UTC

wicket git commit: WICKET-6503 small optimization for ajax update

Repository: wicket
Updated Branches:
  refs/heads/WICKET-6503_ajax_feedback_prepare e2b6205ff -> 16453f4a2


WICKET-6503 small optimization for ajax update


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/16453f4a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/16453f4a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/16453f4a

Branch: refs/heads/WICKET-6503_ajax_feedback_prepare
Commit: 16453f4a2e553e9bf9b2997d8615437fcc01392e
Parents: e2b6205
Author: Sven Meier <sv...@apache.org>
Authored: Fri Dec 15 19:10:44 2017 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Dec 15 19:10:44 2017 +0100

----------------------------------------------------------------------
 .../apache/wicket/page/PartialPageUpdate.java   | 36 +++++++-------------
 1 file changed, 12 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/16453f4a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
index 47d6ef7..caec116 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/PartialPageUpdate.java
@@ -239,34 +239,30 @@ public abstract class PartialPageUpdate
 	{
 		componentsFrozen = true;
 
-		FeedbackDelay delay = new FeedbackDelay(RequestCycle.get());
+		List<Component> prepared = new ArrayList<>(markupIdToComponent.size());
 		
+		// prepare components
+		FeedbackDelay delay = new FeedbackDelay(RequestCycle.get());
 		try {
-			// prepare components
-			for (Map.Entry<String, Component> stringComponentEntry : markupIdToComponent.entrySet())
+			for (Component component : markupIdToComponent.values())
 			{
-				final Component component = stringComponentEntry.getValue();
-
 				if (!containsAncestorFor(component))
 				{
-					prepareComponent(response, component.getAjaxRegionMarkupId(), component, encoding);
+					prepareComponent(component);
+					prepared.add(component);
 				}
 			}
 
+			// .. now prepare all postponed feedbacks
 			delay.beforeRender();
 		} finally {
 			delay.release();
 		}
 
 		// write components
-		for (Map.Entry<String, Component> stringComponentEntry : markupIdToComponent.entrySet())
+		for (Component component : prepared)
 		{
-			final Component component = stringComponentEntry.getValue();
-
-			if (!containsAncestorFor(component))
-			{
-				writeComponent(response, component.getAjaxRegionMarkupId(), component, encoding);
-			}
+			writeComponent(response, component.getAjaxRegionMarkupId(), component, encoding);
 		}
 
 		if (header != null)
@@ -298,17 +294,10 @@ public abstract class PartialPageUpdate
 	/**
 	 * Prepare a single component
 	 *
-	 * @param response
-	 *      the response to write to
-	 * @param markupId
-	 *      the markup id to use for the component replacement
 	 * @param component
-	 *      the component which markup will be used as replacement
-	 * @param encoding
-	 *      the encoding for the response
+	 *      the component to prepare
 	 */
-
-	protected void prepareComponent(Response response, String markupId, Component component, String encoding)
+	protected void prepareComponent(Component component)
 	{
 		if (component.getRenderBodyOnly() == true)
 		{
@@ -325,8 +314,7 @@ public abstract class PartialPageUpdate
 		{
 			// dont throw an exception but just ignore this component, somehow
 			// it got removed from the page.
-			LOG.warn("Component '{}' with markupid: '{}' not rendered because it was already removed from page",
-					component, markupId);
+			LOG.warn("Component '{}' not rendered because it was already removed from page", component);
 			return;
 		}