更新URL而不刷新

时间:2010-07-29 12:41:11

标签: gwt

我正在迭代数据并为仪表板应用程序上的链接(到同一页面,但带有参数)生成参数化URL。但是,我这样做的方式需要在用户点击链接时刷新页面。

使用StringBuilder生成URL

Detailhtml.append("<a href=\"http://" + domain + "&service=" + count +"&day=" + day +"\"><img src=\"/info.jpg\" alt=\"Info\"/>");

有没有办法可以动态创建GWT按钮,或触发一些javascript来添加参数而不刷新页面?

任何帮助都会很棒......

1 个答案:

答案 0 :(得分:5)

如果片段(#)之前的URL的任何部分发生更改,页面将刷新。因此,如果您从foo.com#a到foo.com/?bar=baz#a,将触发页面刷新。

解决这个问题的最好办法就是永远不要在片段之前改变任何东西。将foo.com/?bar=baz更改为foo.com/#bar=baz(或某些变体)并让您的GWT应用程序通过调用History.addHistoryListener(...)来监听History更改。

然后,当您听到历史记录更改时,请解析网址中的片段并相应地更新您的应用。

gwt-platform这样的库提供了这个功能的包装,让你描述当片段更新以匹配它们时会被触发的Place。如果你最终用片段做了很多复杂的事情,那么调查一下这些地方是个好主意。但是,如果您只是传递一些参数,那么只需听取History更改即可。