У меня неприятная проблема с Wicket
и Ajax
на VMWare Horizon
. Пользователи видят, что ajax-ссылки не работают должным образом. Точнее: они работают, но, похоже, действуют на более старую версию страницы. Например, когда у меня есть счетчик, он, похоже, обрабатывает ajax-update, но значение никогда не увеличивается. Значение сохраняется в Model
, поэтому я решил, что это связано с сериализацией страницы.Wicket multi-tab ajax & page serialization
Я продолжал делать более простой эксперимент: на калибровочных картах (см.: http://www.wicket-library.com/wicket-examples/ajax/on-change-ajax-behavior) есть поле ввода. Если вы нажмете enter
, значение будет отправлено на страницу. Это отлично работает на одной вкладке браузера.
Однако, если открыть две вкладки (по копированию вставки URL-адрес в новой вкладке, давайте назовем их и B). Я отправлю значение на вкладке A с помощью ввода. Я обновляю вкладку B и получаю значение, которое представлено на вкладке A.
Единственный способ, которым это может случиться, состоит в том, что они читают сериализованные страницы друг друга.
Как предотвратить такое поведение?
пс. Я использую Wicket
версии 6.19.0, примеры калитки, кажется, запускают 6.x. ps2. Я заметил это поведение в Chrome.
Спасибо @ martin-g, это выглядит полезно. Мне было интересно, можно ли создать новую «WebSession» для этой вкладки, чтобы все остальное «просто работало». Как вы думаете? – RobAu
Сессия кодируется как файл cookie «JSESSIONID». Браузер отправляет его автоматически. Таким образом, все вкладки и окна являются одним и тем же пользователем на стороне сервера. Вы можете закодировать его в URL-адресе и явно удалить его для этой ссылки, но это ручная работа, которую вы должны сделать ... –