Author: mgrigorov
Date: Fri Sep 30 07:50:01 2011
New Revision: 1177542
URL: http://svn.apache.org/viewvc?rev=1177542&view=rev
Log:
WICKET-4092 Improve wicket-ajax.js processScript method to not use
XMLHttpRequest for loading <script src="">
WICKET-3927 Use a resource loading lib to setup order for processing ajax
response fragments
Call notify() when the new script is loaded.
This way if any later javascript contribution depends on the currently loaded
one will be able to actually see it.
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=1177542&r1=1177541&r2=1177542&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
Fri Sep 30 07:50:01 2011
@@ -1673,6 +1673,23 @@ Wicket.Head.Contributor.prototype = {
var attr = attrs[a];
scriptDomNode[attr.name] = attr.value;
}
+
+ var onScriptReady = function () {
+ notify();
+ };
+
+ // first check for feature support
+ if (typeof(scriptDomNode.onload) !==
'undefined') {
+ scriptDomNode.onload = onScriptReady;
+ } else if
(typeof(scriptDomNode.onreadystatechange) !== 'undefined') {
+ scriptDomNode.onreadystatechange =
onScriptReady;
+ } else if (Wicket.Browser.isGecko()) {
+ // Firefox doesn't react on check above ...
+ scriptDomNode.onload = onScriptReady;
+ } else {
+ // as a final resort after the current
function execution
+ setTimeout(onScriptReady, 0);
+ }
Wicket.Head.addElement(scriptDomNode);
@@ -1695,10 +1712,10 @@ Wicket.Head.Contributor.prototype = {
Wicket.Log.error("Wicket.Head.Contributor.processScript: " + e + ": eval -> " +
text);
}
}
+
+ // continue to next step
+ notify();
}
-
- // continue to next step
- notify();
});
},