You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by re...@apache.org on 2023/06/05 08:04:24 UTC
[wicket] branch improvement/ernestosemedt/WICKET-7059 created (now 22bc9fbfd6)
This is an automated email from the ASF dual-hosted git repository.
reiern70 pushed a change to branch improvement/ernestosemedt/WICKET-7059
in repository https://gitbox.apache.org/repos/asf/wicket.git
at 22bc9fbfd6 [WICKET-7059] make easier to skip some page serialization
This branch includes the following new commits:
new 22bc9fbfd6 [WICKET-7059] make easier to skip some page serialization
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[wicket] 01/01: [WICKET-7059] make easier to skip some page serialization
Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
reiern70 pushed a commit to branch improvement/ernestosemedt/WICKET-7059
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 22bc9fbfd63a65f9714e0ffa4329adf42aaaef28
Author: reiern70 <re...@gmail.com>
AuthorDate: Mon Jun 5 11:03:17 2023 +0300
[WICKET-7059] make easier to skip some page serialization
---
.../org/apache/wicket/pageStore/RequestPageStore.java | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java b/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
index c8034f5f4a..d3a4244531 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/RequestPageStore.java
@@ -21,6 +21,7 @@ import java.util.LinkedList;
import org.apache.wicket.MetaDataKey;
import org.apache.wicket.page.IManageablePage;
+import org.apache.wicket.request.IRequestCycle;
import org.apache.wicket.request.cycle.RequestCycle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -107,9 +108,10 @@ public class RequestPageStore extends DelegatingPageStore
public void detach(IPageContext context)
{
RequestData requestData = getRequestData(context);
+ IRequestCycle requestCycle = RequestCycle.get();
for (IManageablePage page : requestData.pages())
{
- if (isPageStateless(page) == false)
+ if (isPageStateless(page) == false && shouldSerializePage(requestCycle, page))
{
getDelegate().addPage(context, page);
}
@@ -119,6 +121,21 @@ public class RequestPageStore extends DelegatingPageStore
getDelegate().detach(context);
}
+ /**
+ * Give the opportunity to skip some serializations. E.g. we have some AJAX behavior that is sending some
+ * info from client to page but page structure didn't change at all and nothing is repainted via AJAX.
+ * But this will trigger a serialization. Returning false here would prevent that request from doing a
+ * page serialization. For heavy pages this can really make a difference.
+ *
+ * @param requestCycle The request
+ * @param page The {@link IManageablePage}
+ * @return <code>true</code> if page should be serialized for this request. The default is true.
+ */
+ protected boolean shouldSerializePage(IRequestCycle requestCycle, IManageablePage page)
+ {
+ return true;
+ }
+
private boolean isPageStateless(final IManageablePage page) {
boolean isPageStateless;
try