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/26 10:07:08 UTC
[5/9] wicket git commit: WICKET-6523 remove timer handle as soon as
possible
WICKET-6523 remove timer handle as soon as possible
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/883db384
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/883db384
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/883db384
Branch: refs/heads/WICKET-6523-ajax-timers
Commit: 883db38419977da450eaac81fbe3356542e0c845
Parents: 9d26068
Author: Sven Meier <sv...@apache.org>
Authored: Wed Jan 24 19:42:40 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Thu Jan 25 17:13:02 2018 +0100
----------------------------------------------------------------------
.../wicket/ajax/AbstractAjaxTimerBehavior.java | 16 ++++------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 9 ++++++---
wicket-core/src/test/js/timer.js | 20 +++++++++-----------
3 files changed, 19 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/883db384/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index 7fd3606..25dd1b7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -88,7 +88,7 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
if (isStopped() == false)
{
- addTimeout(response);
+ setTimeout(response);
}
}
@@ -112,23 +112,15 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
@Override
protected final void respond(final AjaxRequestTarget target)
{
- // onTimer might remove this behavior, so keep the component
- // so the timeout can be cleared later on
- Component component = getComponent();
-
if (shouldTrigger())
{
onTimer(target);
if (shouldTrigger())
{
- addTimeout(target.getHeaderResponse());
-
- return;
+ setTimeout(target.getHeaderResponse());
}
}
-
- clearTimeout(component, target.getHeaderResponse());
}
/**
@@ -175,12 +167,12 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
if (target != null)
{
- addTimeout(target.getHeaderResponse());
+ setTimeout(target.getHeaderResponse());
}
}
}
- private void addTimeout(IHeaderResponse headerResponse)
+ private void setTimeout(IHeaderResponse headerResponse)
{
headerResponse.render(OnLoadHeaderItem.forScript(getJsTimeoutCall(updateInterval)));
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/883db384/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index d4f3100..d9cf11f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -2740,16 +2740,19 @@
/**
* Schedules a timer
* @param {string} timerId - the identifier for the timer
- * @param {function|string} js - the JavaScript to execute after the timeout
+ * @param {function} f - the JavaScript function to execute after the timeout
* @param {number} delay - the timeout
*/
- 'set': function(timerId, js, delay) {
+ 'set': function(timerId, f, delay) {
if (typeof(Wicket.TimerHandles) === 'undefined') {
Wicket.TimerHandles = {};
}
Wicket.Timer.clear(timerId);
- Wicket.TimerHandles[timerId] = setTimeout(js, delay);
+ Wicket.TimerHandles[timerId] = setTimeout(function() {
+ Wicket.Timer.clear(timerId);
+ f();
+ }, delay);
},
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/883db384/wicket-core/src/test/js/timer.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/timer.js b/wicket-core/src/test/js/timer.js
index e018f24..c95c20b 100644
--- a/wicket-core/src/test/js/timer.js
+++ b/wicket-core/src/test/js/timer.js
@@ -28,8 +28,8 @@ jQuery(document).ready(function() {
var timerId = 'timerId',
run = function() {
+ ok(typeof(Wicket.TimerHandles[timerId]) === 'undefined', "There is no handle to the timeout!");
ok("The timer is ran!");
- ok(Wicket.TimerHandles[timerId], "There is a handle to the timeout!");
start();
};
@@ -38,21 +38,19 @@ jQuery(document).ready(function() {
test('clear', function () {
stop();
- expect(3);
+ expect(2);
var timerId = 'timerId',
run = function() {
- ok("The timer is ran!");
-
- ok(Wicket.TimerHandles[timerId], "There is a handle to the timeout!");
-
- Wicket.Timer.clear(timerId);
-
- ok(typeof(Wicket.TimerHandles[timerId]) === 'undefined', "There is NO handle to the timeout!");
-
- start();
+ ok(false, "timeout is not called");
};
Wicket.Timer.set('timerId', run, 1);
+ ok(Wicket.TimerHandles[timerId], "There is a handle to the timeout!");
+
+ Wicket.Timer.clear(timerId);
+ ok(typeof(Wicket.TimerHandles[timerId]) === 'undefined', "There is no handle to the timeout!");
+
+ start();
});
});