Обновление URL без обновления - PullRequest
4 голосов
/ 29 июля 2010

Я перебираю данные и генерирую параметризованные URL-адреса для ссылок (на ту же страницу, но с параметрами) в приложении панели инструментов. Однако способ, которым я это делаю, требует обновления страницы, когда пользователь щелкает ссылку.

Генерация URL с помощью StringBuilder

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

Есть ли способ, которым я могу динамически создавать кнопки GWT или запускать некоторый JavaScript для добавления параметров без обновления страницы?

Любая помощь была бы отличной ...

1 Ответ

5 голосов
/ 29 июля 2010

Страница обновится, если какая-либо часть URL-адреса до изменения фрагмента (#).Поэтому, если вы перейдете с foo.com # a на foo.com/?bar=baz#a, будет запущено обновление страницы.

Лучший способ обойти это - просто никогда ничего не менять дофрагмент.Измените foo.com/?bar=baz на foo.com/#bar=baz (или другой вариант) и пусть ваше приложение GWT прослушивает History изменения, вызывая History.addHistoryListener(...).

Затем, когда вы услышите изменение истории, проанализируйте фрагмент в URL-адресе и обновите ваше приложение соответствующим образом.

Некоторые библиотеки, такие как gwt-platform , предоставляют оболочку для этой функции и позволяют вам описать Place s, которые срабатывают, когда фрагмент обновляется, чтобы соответствовать им.Если в итоге вы сделаете много сложных вещей с фрагментом, было бы неплохо разобраться в некоторых местах.Но если вы просто передаете несколько параметров, вы можете просто прослушать History изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...