Как создать динамическую веб-страницу в одном веб-приложении? - PullRequest
0 голосов
/ 11 февраля 2011

Я подумал еще раз сформулировать этот вопрос, чтобы прояснить его.Большое спасибо за комментарии.Я разрабатываю веб-приложение, в котором я использую виджеты.

Возьмите реальный сценарий использования, предположим, что пользователь USER-A входит в мое веб-приложение, и он использует некоторые виджеты, например, виджеты A, B и C.Он размещает виджет A в центре, WIDGET-B вверху справа и WIDGET-C слева на странице.

USER_B входит в мою систему и использует некоторые виджеты и места.виджеты в разных положениях, так как виджеты сделаны перетаскиваемыми и изменяемого размера.Когда пользователь публикует страницу, виджет должен появляться точно в той же позиции, точно в той же позиции, в которой он размещен.

Мы используем Jquery HTML5 в клиентской части и сервлет, а мой sql - в серверной части.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

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

http://mysite.com/some/path/or/other

или, возможно, с некоторыми параметрами

http://mysite.com/some/path/or/other?thing=somevalue

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

String interestingBit; // somehow gets set to "other"
String thing; // somehow gets set "somevalue"

Теперь вы можете написать код для извлечения данных из файла или базы данных,

databaseRetrieve( interstingBit, thing);

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

Отредактировано в ответе на уточненный вопрос:

Похоже, вы разрабатываете функцию "персонализации", которая часто предоставляется продуктами и инфраструктурами "Portal". Ключевым моментом является то, что у вас есть индивидуальный набор предпочтений, которые определяют, какой контент отображается и где он отображается. Таких продуктов много, я работаю на IBM, поэтому знаю о WebSphere Portal и Lotus Mashups, если не считать двух.

Итак, для реализации этого вам нужно:

  1. Чтобы создать компоновку и макет страницы на основе данных, извлекаемых динамически, например, из базы данных. Для этого вам необходимо выяснить, что следует хранить в базе данных (например, список имен виджетов, их размеры и положение, а также, возможно, их стили и конфигурация.) И способ отображения страницы из этой информации. Я не знаю JQuery, но вам, возможно, придется создать немного кода, чтобы сделать это, не очень сложно, но немного поработать.
  2. Как выбрать конкретный экземпляр из базы данных на основе идентификатора пользователя и выбранной страницы. Обычно пользователь просит http://mysite.com/sport и ваше приложение знает идентификатор пользователя из информации аутентификации, установленной ранее в сеансе и передаваемой через куки. В случае Java EE это просто доступно в API сервлета.
  3. Как записать изменения пользователя во что-то, что вы можете сохранить в своем хранилище.
1 голос
/ 11 февраля 2011

Ого, вам нужно взглянуть на свой вопрос и, возможно, немного уточнить его.Здесь есть много вещей в действии, сначала вы говорите о личных пространствах пользователей, это очень распространенная практика, вам нужно изучить запросы маршрутизации (например, я бы посмотрел учебник по rails для зомби, чтобы увидеть, как это сделать в ROR),Вам также нужно определить, что вы используете для разработки этого: PHP, Java, ASP и т. Д. ... ваш вопрос не хватает много деталей, которые делают невозможным ответить правильно или с пользой.

Наконец, вам нужнопокажите нам, что вы сделали до сих пор, потому что это совершенно невозможно увидеть по вашему вопросу.Покажите нам некоторый код, дайте нам больше спецификаций относительно того, что вы сделали, как и какие инструменты вы используете.

Кажется, вы начинаете с этого, поэтому вы можете начать с рассмотрения шаблона проектирования MVC ивеб-фреймворки, которые помогут вам реализовать это.Маршрутизация - это термин, используемый для определения того, как запросы сопоставляются с вашим приложением.

Edit:

Для ваших виджетов это просто вопрос сохранения позиций каждого пользователя и каждого виджета в некотором эффективномТаким образом, затем загрузите его при входе в систему и используйте ваши библиотеки для переустановки позиций на элементах.Вы должны решить, где хранить его, но наиболее логичный подход - на стороне сервера (используйте таблицу БД или атрибут для виджета, чтобы сохранить это).При входе в систему получите значения и верните их в библиотеку (ответ ajax, или установка переменных js и т. Д., Есть много способов).

...