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 2018/01/02 10:20:52 UTC
wicket git commit: WICKET-6498 deferred javascript
Repository: wicket
Updated Branches:
refs/heads/WICKET-6498_deferred_javascript [created] d77ba274f
WICKET-6498 deferred javascript
use OnLoadHeaderItem instead of JavaScriptHeaderItem, addEventListener instead of jQuery;
defer all JavaScript resources for now
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d77ba274
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d77ba274
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d77ba274
Branch: refs/heads/WICKET-6498_deferred_javascript
Commit: d77ba274f38953b6d5ab1088c7a9555111acd4fc
Parents: 7e25f47
Author: Sven Meier <sv...@apache.org>
Authored: Tue Jan 2 11:20:03 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Tue Jan 2 11:20:12 2018 +0100
----------------------------------------------------------------------
.../apache/wicket/ajax/AbstractDefaultAjaxBehavior.java | 12 ++++++------
.../apache/wicket/markup/head/OnDomReadyHeaderItem.java | 4 ++--
.../org/apache/wicket/markup/head/OnLoadHeaderItem.java | 4 ++--
.../apache/wicket/markup/head/ResourceAggregator.java | 4 ++++
.../wicket/resource/CoreLibrariesContributor.java | 4 ++--
5 files changed, 16 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d77ba274/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
index ae0857f3..67c2cc3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
@@ -18,9 +18,6 @@ package org.apache.wicket.ajax;
import java.util.List;
-import com.github.openjson.JSONArray;
-import com.github.openjson.JSONException;
-import com.github.openjson.JSONObject;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
@@ -34,7 +31,7 @@ import org.apache.wicket.ajax.json.JSONFunction;
import org.apache.wicket.ajax.json.JsonUtils;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnLoadHeaderItem;
import org.apache.wicket.markup.html.IComponentAwareHeaderContributor;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.Url;
@@ -45,6 +42,10 @@ import org.apache.wicket.resource.CoreLibrariesContributor;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.time.Duration;
+import com.github.openjson.JSONArray;
+import com.github.openjson.JSONException;
+import com.github.openjson.JSONObject;
+
/**
* The base class for Wicket's default AJAX implementation.
*
@@ -106,8 +107,7 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior
RequestCycle requestCycle = component.getRequestCycle();
Url baseUrl = requestCycle.getUrlRenderer().getBaseUrl();
CharSequence ajaxBaseUrl = Strings.escapeMarkup(baseUrl.toString());
- response.render(JavaScriptHeaderItem.forScript("Wicket.Ajax.baseUrl=\"" + ajaxBaseUrl
- + "\";", "wicket-ajax-base-url"));
+ response.render(OnLoadHeaderItem.forScript("Wicket.Ajax.baseUrl=\"" + ajaxBaseUrl + "\";"));
renderExtraHeaderContributors(component, response);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d77ba274/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
index cc51588..b935a3e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
@@ -86,8 +86,8 @@ public class OnDomReadyHeaderItem extends HeaderItem
CharSequence js = getJavaScript();
if (Strings.isEmpty(js) == false)
{
- JavaScriptUtils.writeJavaScript(response, "Wicket.Event.add(window, \"domready\", " +
- "function(event) { " + js + ";});");
+ JavaScriptUtils.writeJavaScript(response,
+ "var f = function() {" + js + ";};\nif ('complete' === document.readyState) f(); else document.addEventListener('DOMContentLoaded', f);");
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d77ba274/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
index 3cd2cde..b2f3025 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
@@ -86,8 +86,8 @@ public class OnLoadHeaderItem extends HeaderItem
CharSequence js = getJavaScript();
if (Strings.isEmpty(js) == false)
{
- JavaScriptUtils.writeJavaScript(response, "Wicket.Event.add(window, \"load\", " +
- "function(event) { " + js + ";});");
+ JavaScriptUtils.writeJavaScript(response,
+ "var f = function() {" + js + ";};\nif ('loaded' === document.readyState) f(); else window.addEventListener('load', f);");
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d77ba274/wicket-core/src/main/java/org/apache/wicket/markup/head/ResourceAggregator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/ResourceAggregator.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/ResourceAggregator.java
index a0400c9..2257e12 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/ResourceAggregator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/ResourceAggregator.java
@@ -223,6 +223,10 @@ public class ResourceAggregator extends DecoratingHeaderResponse
private void recordHeaderItem(HeaderItem item, Set<HeaderItem> depsDone)
{
+ if (item instanceof AbstractJavaScriptReferenceHeaderItem) {
+ ((AbstractJavaScriptReferenceHeaderItem) item).setDefer(true);
+ }
+
renderDependencies(item, depsDone);
RecordedHeaderItem recordedItem = itemsToBeRendered.get(item);
if (recordedItem == null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d77ba274/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java b/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
index 49da713..4233608 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
@@ -19,6 +19,7 @@ package org.apache.wicket.resource;
import org.apache.wicket.Application;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnLoadHeaderItem;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.settings.DebugSettings;
import org.apache.wicket.settings.JavaScriptLibrarySettings;
@@ -63,8 +64,7 @@ public class CoreLibrariesContributor
if (debugSettings.isAjaxDebugModeEnabled())
{
response.render(JavaScriptHeaderItem.forReference(jsLibrarySettings.getWicketAjaxDebugReference()));
- response.render(JavaScriptHeaderItem.forScript("Wicket.Ajax.DebugWindow.enabled=true;",
- "wicket-ajax-debug-enable"));
+ response.render(OnLoadHeaderItem.forScript("Wicket.Ajax.DebugWindow.enabled=true;"));
}
else
{