2009-11-12 2 views
0

Как я могу получить время браузера/клиента, когда страница загружается в портлете. Мне нужно сделать алгоритм, основанный на часовом поясе клиентов. Что это значит, так это то, что во время этапа визуализации портлета мне нужно получить часовой пояс браузера. Возможно ли, если да, то как?Как получить время браузера/клиента при загрузке страницы в портлете

Любая помощь с благодарностью.

Спасибо, Мичил

ответ

0

Я не знаю портлет, но если он имеет яваскрипт интерфейса, возможно, назвать dateObject.getTimezoneOffset()?

+0

Мне нужно время клиента, когда страница загружается первой, а не после ее загрузки и последующих запросов – user199471

1

Я думаю, что HTTP-запрос не содержит никакой информации о времени браузера/клиента, поэтому вам придется обойти это, используя javascript. Я нашел статью по этому вопросу here.

Я могу придумать несколько стратегий, которые я мог бы использовать, в зависимости от обстоятельств:

  1. Grab время клиента с JavaScript на предыдущей странице портала и включить его в запросе на целевую страницу с помощью формы представление.
  2. Установите представление портлета на сообщение «Подождите» на начальной загрузке страницы и отправьте время клиента на сервер с помощью запроса AJAX. Когда запрос возвращается, обновите представление портлета по мере необходимости. Если вы пишете портлет JSR 286, портлет может реализовать интерфейс ResourceServingPortlet, чтобы обеспечить крючок (т. Е. Метод serveResource) для рендеринга фрагментов разметки. Для получения дополнительной информации вы можете загрузить спецификацию JSR 286 here (см. Главу 14 «Обслуживающие фрагменты через портлеты»).
  3. Используйте настройки портлета, чтобы установить часовой пояс по умолчанию для портлета. Пусть пользователи выбирают другой часовой пояс, если они выбирают. Это дает вам полный контроль над часовыми поясами, которые вы поддерживаете, в зависимости от браузера или javascript. Настройки портлета описаны в главе 17 спецификации, упомянутой в № 2 выше.
Смежные вопросы