You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Hendy Irawan <he...@soluvas.com> on 2014/12/29 14:22:07 UTC
History API support for navigable AJAX pages/components?
Hi friends,
Continuing the discussion on
https://issues.apache.org/jira/browse/WICKET-5290 /
http://apache-wicket.1842946.n4.nabble.com/Wicket7-History-API-support-for-navigable-AJAX-pages-components-td4660502.html,
I made a simple working experiment:
final DropdownSizePanel dropdownSizePanel = new
DropdownSizePanel("dropdownSize", selectedSizeModel) {
@Override
protected void onSizeChanged(AjaxRequestTarget target) {
target.add(productGrid);
final PageParameters newParams = new
PageParameters(getPage().getPageParameters());
newParams.set("selectedSize",
Optional.ofNullable(selectedSizeModel.getObject()).map(Term::getQName).orElse(null));
final String newUri = urlFor(getPage().getPageClass(),
newParams).toString();
target.appendJavaScript("window.history.pushState(null, null, " +
JSONObject.quote(newUri) + ");");
}
};
add(dropdownSizePanel);
This works brilliantly with a caveat: Even after the browser URI is updated,
next AJAX calls still use the "old" URI.
So this is a missing piece, how do I change Wicket's client-side "URI"
variable? So next AJAX calls will use the "new" URI.
Thank you.
Hendy
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/History-API-support-for-navigable-AJAX-pages-components-tp4668897.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: History API support for navigable AJAX pages/components?
Posted by Hendy Irawan <he...@soluvas.com>.
I tried to do this:
protected void onSizeChanged(AjaxRequestTarget target) {
target.add(productGrid);
final PageParameters newParams = new
PageParameters(getPage().getPageParameters());
newParams.set("selectedSize",
Optional.ofNullable(selectedSizeModel.getObject()).map(Term::getQName).orElse(null));
final String newUri = urlFor(getPage().getPageClass(),
newParams).toString();
final String absoluteNewUri =
RequestUtils.toAbsolutePath(getRequest().getUrl().toString(), newUri);
target.appendJavaScript("window.history.pushState(null, null, " +
JSONObject.quote(newUri) + ");");
target.appendJavaScript("Wicket.Ajax.baseUrl = " +
JSONObject.quote(StringUtils.removeStart(absoluteNewUri, "/")) + ";");
}
but although Wicket.Ajax.baseUrl does change in the client, but seems to
have no effect.
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/History-API-support-for-navigable-AJAX-pages-components-tp4668897p4668898.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org