GWT 2.1 Помехи в методе Place / Activity: изменения URL перед подтверждением навигации - PullRequest
2 голосов
/ 02 декабря 2010

Я читаю это руководство Google и использую этот пример кода, предоставленный Google , но есть сбой: использование кнопок «назад» и «вперед» приводит к изменению URL-адреса перед диалоговым окном подтверждения вернулся. Это означает, что если пользователь решит не переходить прочь, URL больше не будет представлять текущее место.

У кого-нибудь есть решение или обходной путь? В идеале, URL-адрес не должен меняться до тех пор, пока не будет получено подтверждение, но лучше просто переключить его обратно в спешке после отказа.

1 Ответ

5 голосов
/ 20 декабря 2010

Обходного пути нет. Ваше приложение каким-то образом обнаруживает, что URL-адрес изменился, что вызывает изменение места (таким образом, до подтверждения навигации).

И нет способа узнать , почему URL изменился; это был "спина"? "вперед"? «назад» с помощью меню истории, чтобы вернуться на несколько шагов назад одновременно? закладка? ручное редактирование URL? Таким образом, вы не можете сделать History.next (), чтобы «отменить» изменение URL во всех случаях (также обратите внимание, что это вызовет другое изменение места). И попытка изменить URL с помощью чего-то другого, кроме History.back / next / go, сотрет историю пересылки, которую вы, вероятно, тоже не хотите.

К вашему сведению, я реализовал это поведение 2 года назад в своем собственном "менеджере мест" и говорил об этом с Рэем Райаном, когда он добавил PlaceHistoryHandler в GWT 2.1, и мы согласились, что нет лучшего поведения, чем позволить URL-адресу дольше быть в синхронизации с местом. К вашему сведению, когда я изучал это 2 года назад, а затем в начале этого года, GMail вел себя аналогично (создавал черновик сообщения и перемещался, пока в черновике есть несохраненные изменения).

...