#javascript #browser #gwt #tabs #reload
#javascript #браузер #gwt #вкладки #перезагрузите
Вопрос:
Если страница входа открыта на двух вкладках, и пользователь входит в систему на первой вкладке. Мне нужно идентифицировать другую вкладку со страницей входа и изменить ее.
Я пытался писать различные типы javascript, но не знаю, как писать в gwt. Не удается найти какое-либо возможное решение. У меня есть одно решение, чтобы получить текущую вкладку и изменить ее. Но не могу определить, как я могу получить все вкладки и их URL.
public static native void forceReload() /*-{
$wnd.location.reload(true);
}-*/;
Ответ №1:
Вы не можете знать, какие другие вкладки открыты на той же странице / сайте, но вы можете общаться между ними.
Вы можете периодически (с помощью таймера) проверять наличие данного файла cookie или прослушивать изменения в sessionStorage (устанавливая значение на вкладке, на которой произошел вход в систему). Вы также можете проверить с помощью сервера, используя опрос, длительный опрос, события на стороне сервера или websocket.
Комментарии:
1. Привет, Томас, в gwt невозможно получить доступ к веб-браузеру и получить все вкладки с их URL? а также спасибо за ваш ответ, но для меня это небольшое продвижение, если возможно, не могли бы вы поделиться каким-либо примером gwt, связанным с ним. спасибо за помощь.
2. В браузере (в JS, а GWT компилируется до JS) невозможно получить доступ к вкладкам и их URL-адресам (если вы не являетесь расширением браузера). Для sessionStorage взгляните на developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API /… , и использовать его через javadoc.io/doc/com.google.elemental2/elemental2-webstorage /… и static.javadoc.io/com.google.elemental2/elemental2-dom /…
3. Здесь приведен пример взаимодействия между вкладками в GWT с использованием веб-хранилища github.com/ibaca/intercomm-gwt/blob/master/src/main/java /…