![]() |
Модераторы: LSD, AntonSaburov Страницы: (29) « Первая ... 16 17 [18] 19 20 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
День и свежая голова результатов не дали. Нашел кучу тем с аналогичной проблемой. И те решения которые в них предлагали у меня не работают.
-------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Я сейчас тоже поэкспериментировал с разными вариантами, выявил туеву хучу новых нюансов по сравнению с временами, когда делал предыдущие проекты.
Короче, предлагаю такое окончательное решение. Для всех страниц:
В воркере ConfirmationWorker дополнительно:
У меня в таком варианте получается так:
Короче, вердикт: ну их всех нахер. Мы не собираемся гробить еще кучу времени на поиск идеального решения, которого, по всему выдать, все равно не существует. Будем ориентироваться на Firefox, как на наиболее стандартопослушный браузер. А кто не спрятался - мы не виноваты. На всех все равно не угодить. В том виде, в котором я привел, работать худо-бедно будет во всех трех испробованных. Вот и ладушки. Возражений нет? Тогда прошу зип в студию. Это сообщение отредактировал(а) Stampede - 2.8.2007, 00:15 -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
А у меня получаеться так:
Firefox 1.0 RC1 (такой вот древний) работает как и опера. Все берут из кэша. IE 6.0 работает также как и твой 7.0 Я вообще всегда думал, что по части веба, все равняются на IE... Как самый массовый и правильный по отображению кода браузер. Это сообщение отредактировал(а) diablero - 3.8.2007, 00:21 Присоединённый файл ( Кол-во скачиваний: 65 ) ![]() -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
В толпе разработчиков такая фраза вызывает бурный смех ![]() Насчет массовости - возможно, но вот в следовании стандартам его упрекнуть сложно. Зачастую ребята из MS пытаются создать свои, а не поддерживать существующие. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
А какой браузер не вызывает смех? Опера, которая отображает простой html код не так как положенно. Я конечно уважаю этот браузер, но косяков за ним достаточно. Это сообщение отредактировал(а) diablero - 2.8.2007, 19:06 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Тут на самом деле вот какое дело. IE - это один из самых глючных браузерв, в плане следования стандартам. НО! - так уж сложилось - до сих пор самый массовый. Потому что рядовым пользователям, как правило, нет никакого дела до всяких там стандартов: что пришло с виндой, то и ладно. Процент посетителей, использующих IE, по разным прикидкам (и для разных целевых аудиторий) составляет 75-90%. Хотя надо сказать, с появлением Firefox эта цифра маленько ушла вниз, но все равно не до такой степени, чтобы серьезно подвинуть позиции Мелкософтного браузера. Что остается разработчикам в такой ситуации? Правильно, "мыши плакали, кололись, но продолжали есть кактусы". То есть при любых раскладах необходимо кровь из носу обеспечить, чтобы в IE работало, как задумывалось. Но тут есть два принипиально разных подхода.
Так вот, второй подход - он идеологически более правильный. Потому что идет от общемировых, так сказать, принципов, закрепленных в спецификациях. [голосом пьяного Мягкова] "Это документ, между прочим" ![]() Но ладно, это хоть и методологическая, но в общем-то лирика. Теперь по заданию. 1. Ты в коде воркеров везде объявляешь и инициализируешь классовую переменную page. А ведь она у нас специально объявлена как protected в AbstractWorker, и там же и инициализируется. А ты ее, получается, перебиваешь. А что если у нас со временем добавятся дополнительные действия? Например, я хотел тебе предложить добавить в Page такой метод:
И чтобы этот метод вызывался при аутентификации по кукисам, то есть в общей для всех воркеров части кода, AbstractWorker.execute(). А иначе у тебя получается, что Velocity-переменная $user попадает в контекст только в HomeWorker . Соответственно, из-за этого на других страницах приветствие отображается неправильно (кстати, ты там зря вводишь дополнительно $flag="login", достаточно самой переменной $user). 2. Я в предыдущем посте намеком предложил тебе завести в Page переменную startDate. Ее смысл в том, чтобы использовать единое значение времени во всех местах, где оно понадобится (а оно таки еще понадобится многократно). Это предотвратит бессистемное использование несогласованых дат и сэкономит немножко времени на создание множественных new Date(). Инициализировать startDate, понятное дело, лучше в конструкторе Page. Заодно ее же можно положить в контекст, чтобы обеспечить доступ к ней из шаблонов. В остальном вроде все нормально. Следующим шагом мы создадим мини-фреймворк для работы с формами, и с его помощью приделаем регистрацию новых пользователей и ввод/редактирование постов. Но сначала нужно внести коррективы по списку (особенно п. 1) и перезалить. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Изменил и перезалил
З.Ы. Из-за всяких халявщиков, отпускников, работаю сутки через сутки. Так что пока, времени мало... Это сообщение отредактировал(а) diablero - 3.8.2007, 00:05 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Нет, все равно немного не так. У тебя после исправления:
А надо бы:
Но да ладно, не бери в голову. У меня созрела мысля, как все это дело оформить в менее запутанном виде. Но это все завтра. Щас - отдыхать ![]() -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Вопрос на засыпку.
А нашу задачу, по обновлению страниц, можно решить с помощью javascript? Может кто подкинет решение? -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Нет, нельзя. Даже если ты по клику подменишь переход по ссылке на код типа window.location = '/', браузер в своем решении о том, откуда брать контент, все равно будет руководствоваться своей внутренней политикой кэширования. По этой причине, например, у многих начинающих Аяксоидов возникают непонятки с подгружаемым динамическим контентом. Приходится в итоге все равно решать через заголовки. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Вот нашел небольшой туториал тынс.
Там все через сесии, используется фильтр, и с logout у них все нормально. Я попробывал использовать фильтр, но он у меня не заработал. Посмотри, может мы найдем решение... -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
diablero, я должен развеять перед тобой одно заблуждение. Ты полагаешь, что статьи в Java World публикуют какие-то гуры и небожители. Спешу тебя разочаровать: нет, это подчас обычные девелОперы, со своейственными каждому человеку ограничениями и заблуждениями.
Возьмем, к примеру, статью товарища Хуанг Ли, ссылку на которую ты приводишь. В чем суть его, тыкскыть, решения? Да все в той же идиоме PRG (Post-Redirect-Get)! Просто чувак, похоже, не знал такого слова, а то бы постеснялся с умным видом расписывать на трех страницах такие элементарные и всем известные вещи. Обрати внимание, что саму по себе идею PRG я тебе растолковал буквально в два абзаца, Реализация этой идеи у нас тоже получилась простая и логичная: /form/login.shtml -> /submit/login.do -> /confirmation.shtml То, что Опера и старый Firefox не понимают каких-то заголовков - это, конечно, плохо, но видишь ли, от того, что мы закодируем ту же самую PRG логику в виде кривых и запутанных рецептов от товарища Хуанг Ли, понимаемость браузерами заголовков, увы, не улучшится. Чтобы тебе это наглядно продемонстрировать, я предлагаю тебе зайти по адресу, где у сего аффтара находится онлайновая демонстрация описанного решения для Logout: http://pragmaticobjects.org/properLogoutDemo/. Как нетрудно убедиться, чуда не произошло. Если Опера не понимает директиву Cache-Control: no-store, то никакие Хуанг Ли тут не помогут. Чтобы тебя окончательно стало ясно, что тут и к чему, открою еще один маленький секрет. Я эту статью уже видел раньше. Более того, я видел и еще более раннюю статью этого же аффтара, на эту же тему. Вот она: Solving the logout problem properly and elegantly. Так вот, в этой первой статье он вообще пытался по логину перейти сразу на авторизованный ресурс через директиву jsp:forward, то есть посредством внутрисерверной переадресации, а не через ответ 302. Потом его ткнули носом, что это типа не работает, и тогда он выступил со второй статьей. Которую я в общем уже прокомментировал. Ну и чтобы развеять последние остатки сомнений, покажу пальцем на один кусочек кода. В статье, которую ты приводишь, вся "магия" на самом деле сосредоточена вот в этих строчках:
Заметили ошибку? Правильно, setHeader("Cache-Control","no-store") забивает значение, выставленное в предыдущей строчке! Если он хотел его добавить, то должен был использовать addHeader("Cache-Control","no-store"). Тогда с сервера приехало бы Cache-Control: no-cache, no-store. Вот такие вот у нас писатели. Короче, все: тема закрыта. Возвращаясь к заданию. Нам предстоить нарисовать несколько дополнительных страниц, в том числе форм. Если ты будешь делать это в том же ключе, как у тебя сделана form/login.vm, то мы очень скоро перестанем понимать, что там наворочено в разметке. Отсюда подготовительный этап:
Лучше все это сделать в статике, то есть прям завел на диске файл template.htm, и пишешь в нем. Потом открываешь браузером с диска и смотришь, что получилось. Файл style.css можешь положить в эту же директорию. Верстать надо семантоично, чтобы код отражал только структуру документа, но не его оформление. То есть чтобы никаких bgcolor, font и пр. Чтобы было за что зацепиться CSS'ом, используй атрибуты id и class. Если будут вопросы - не стесняйся. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Подготовительный этап выполнил...
Выложил шаблоны. Это сообщение отредактировал(а) diablero - 7.8.2007, 01:10 Присоединённый файл ( Кол-во скачиваний: 41 ) ![]() -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
diablero, я посмотрел разметку. Не идеально, конечно, но для начала пойдет.
Я сейчас пока маленько занят, давай отложим до вторника. Между делом можешь нарисовать форму для создания/редактирования поста. Старайся придерживаться тех же правил семантичности. Да, пока не забыл. У тебя встречаются элементы с одинаковым id. Это впоследствии может послужить источником больших непоняток. Для справки: id назначаются только тем элементам, про которые точно известно, что они всегда будут в единственном экземпляре. Например, id="navigation", id="content", id="footer", и т. д. Для повторяющихся (в пределах одной страницы) элементов одного типа используется понятие класса: например, class="post-title" на странице раздела (для списка постов). Как запостишь форму, пойдем дальше. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |