[ https://issues.apache.org/jira/browse/WICKET-6498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333835#comment-16333835 ]
ASF subversion and git services commented on WICKET-6498: --------------------------------------------------------- Commit 0da9b84e2f7414f1cf0c59f8a6abf14254a09aec in wicket's branch refs/heads/WICKET-6498_deferred_javascript from [~solomax] [ https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=0da9b84 ] Merge branch 'master' into WICKET-6498_deferred_javascript > wicket 8 - js to asnyc and or defer > ----------------------------------- > > Key: WICKET-6498 > URL: https://issues.apache.org/jira/browse/WICKET-6498 > Project: Wicket > Issue Type: New Feature > Affects Versions: 7.9.0, 8.0.0-M8 > Reporter: Korbinian Bachl > Priority: Minor > Attachments: WICKET-6498-defer-support-2.patch, > WICKET-6498-defer-support.patch > > > I wonder if wicket cant even get better in the js part. Currently each page > having ajax somehow ends up with following in the head: > (1)<script type="text/javascript" > src="./wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-2.2.4-ver-F9EE266EF993962AD59E804AD9DEBE66.js"></script> > (2)<script type="text/javascript" > src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery-ver-E34C6FE16C54FE3DF3591290A48A496A.js"></script> > (3)<script type="text/javascript" > src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-F8010FEDC5FD9B05434A6023763E3050.js"></script> > (4 - inline var and not really an issue)<script type="text/javascript" > id="wicket-ajax-base-url"> > /*<![CDATA[*/ > Wicket.Ajax.baseUrl="/pagepath"; > /*]]>*/ > </script> > (5)<script type="text/javascript" > > /*<![CDATA[*/ > Wicket.Event.add(window, "domready", function(event) { > wicketDebugBarCheckState(); > Wicket.Ajax.ajax({"u":"./effects?2-2.0-c1~link","c":"id6","e":"click","ch":"effects|d"});; > Wicket.Ajax.ajax({"u":"./effects?2-2.0-c2~link","c":"id7","e":"click","ch":"effects|d","pd":true});; > jQuery.noConflict();; > Wicket.Event.publish(Wicket.Event.Topic.AJAX_HANDLERS_BOUND); > ;}); > /*]]>*/ > </script> > While 1,2 and 3 could be easily made at least defer, script 5 makes this > impossible so far, having all 4 scripts lead to a slower DOMContentLoaded > (requestet and executed 1 by 1), even these are not needed at that time and > could IMHO be easily postponed to a time when the rendering tree is ready > (and so dont block it); > The real culprint IMHO is (5) and that it immediately needs the Wicket.Event > object - so, I see 2 solutions for this: > 1st: outline this code into a request specific js-src file that can be loaded > like e.g.: <script defer src="/requesrt specific fake path"> > or > 2nd: have it embedded into an > window.addEventListener('DOMContentLoaded', function() { > (function($) { > $(document).ready(function() { > // add the content here.... > }); > })(jQuery); > }); > of even slim it down to: > window.addEventListener('DOMContentLoaded', function() { > (function($) { > // add the content here.... > }); > }); > While 1 has the need to get 1 more request (even thats async thanks to > defer), 2 seems to be clear of this and I cant think of any problem with that; > What do you think? -- This message was sent by Atlassian JIRA (v7.6.3#76005)