Как использовать перетаскиваемые разделы, как в iGoogle?
При просмотре iGoogle каждый раздел можно перетащить в любое место на странице, а затем сохранить состояние страницы. Мне интересно, как это сделать, так как я хотел бы предоставить эту функциональность как часть концепции?
ОБНОВИТЬ
Как сделать так, чтобы измененный макет был сохранен для следующей загрузки? Я собираюсь догадаться, что это какое-то печенье?
5 ответов
Любая современная клиентская среда даст такую функциональность.
Просто назвать несколько...
Что касается "сохранения" (постоянства, если хотите) данных, это зависит от серверной части вашего сайта, но обычно это делается посредством асинхронного вызова сервера, который сохраняет состояние в БД (обычно).
Я не хочу давать краткий ответ на этот вопрос, но есть несколько десятков различных библиотек JavaScript, которые предоставляют такую функциональность, а также множество руководств и руководств, доступных в Google:
http://www.google.com/search?q=javascript+draggable
Некоторые библиотеки / фреймворки JavaScript, на которые вы можете взглянуть:
Это удивительно просто с JQuery. Проверьте эту запись в блоге на эту тему.
Изменить: я пропустил часть вопроса "состояние страницы сохранено", когда я ответил. Эта часть будет сильно отличаться в зависимости от структуры вашего приложения. Вам нужно как-то хранить состояние страницы, и это будет зависеть от пользователя. Если вы не возражаете заставлять пользователя восстанавливать свои предпочтения каждый раз, когда он очищает свой кеш-файл cookie, вы можете сохранить состояние с помощью cookie-файла.
Я не знаю, как структурировано ваше приложение, поэтому я не могу вносить дальнейшие предложения, но сохранение cookie в jQuery также удивительно просто. Первая часть этой записи блога расскажет вам почти все, что вам нужно знать.
Один из методов, не упомянутых здесь, заключается в том, что начиная с ASP.NET в среде 2.0, Microsoft представила нечто, называемое WebParts, которое позволило создавать элементы управления, которые можно перетаскивать и размещать таким же образом. Предполагалось, что это будет простой способ для пользователей создавать свои собственные порталы в стиле Web 2.0.