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
 		{