![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
diam |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 1 Всего: 16 |
OFF: предлагаю в эту тему складывать все варианты подгрузки данных на страницу без её перезагрузки.
Иногда появляется необходимость взаимодействия страницы с сервером, передача серверу определённых параметров, получение от него ответа, при этом задача стоит так, что нужно обновить только часть данных и без перезагрузки основной страницы. Как я себе представляю подгрузку данных. Подгрузить данные в виде картинок, текста и т.п., в общем, не требующего при этом передачи серверу параметров - не представляет из себя никакой сложности. Сложность появляется тогда, когда нужно подгрузить данные на основе каких-либо критериев. Например, у вас есть БД, в которой в виде таблицы лежит информация по улицам, домам, квартирам (т.е., три связанных списка, от улицы зависят дома, которые на ней расположены, от домов - квартиры, которые находятся в этом доме). Передавать всю эту информацию на страницу может быть затруднительным, если, например, в этой таблице больше 100 000 записей. Тут нам может помочь следующий принцип: сначала передаём список улиц, потом, в зависимости от выбранной улицы, передаём список домов, потом, в зависимости от дома - список квартир. Соответственно, для получения списка домов на сервер нужно передать выбранную квартиру, а для списка квартир - выбранные дом и улицу. Как можно решить подобные задачи? На мой взгляд, нужно с сервера нужно получать JavaScript'овые файлы, содержимое которых зависит от переданных параметров. Ведь если мы сможем получать JavaScript'овые файлы с зависимым от параметров содержимым - то мы можем получать что угодно: списки, новые функции, делать вызовы старых функций и т.п. - не говоря уже про получение статического контента. Одно из возможных решений - использование метода appendChild, который будет добавлять в наш документ скрипт. Особенности: 1. Данные пердаются методом GET, что накладывает размер на передаваемые параметры (4 кб по спецификации HTTP) 2. Можно передавать только текстовые параметры, нельзя передать бинарные (файлы, к примеру). Ниже приведён код с комментариями. Обсуждение здесь.
Теперь подведу итоги, кратко. 1. Конструктор.
2. Кусок HTML кода с примером использования сего метода
3. Ну, и наконец, кусок кода на PSP, обрабатывающий запрос и выдающий скрипт*. К сожалению, подсветки под python не сделали (ех, какой большой минус), буду пользоваться подсветкой cpp.
* Этот же код можно написать на чём угодно, включая php. Но я пишу на psp, так что эту часть доделывайте сами ![]() Пользуйтесь на здоровье. ![]() |
||||||||
|
|||||||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
А чем не устраивает создать фрейм и через него с помощью одного скрипта делать все необходимые транзакции??
Лично мне логичнее представлять, что на странице есть некая статическая разметка и объект (скажем таблица) который требует изменения... Взять например сайт http://www.translate.ru/text.asp?lang=ru: меня он бесит!!! Там более 60 кб ТОЛЬКО ТЕКСТА, который никому не нужен. Применение фреймов также полезно, если используются статические страницы, которые могут быть кешированы на проксе например. Добавлено @ 10:47 подписаться забыл... |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
02077461 у фрейма есть два негативных момента: он щёлкает в ИЕ и он ведёт себя по разному в разных браузерах и даже в разных режимах работы(quirks, standart compilance).
Второй момент, не всегда сервер может выдать страницу, слышал когда нибудь о вебсервисах? Например опрашиваем у вебсервиса погоду или курс валют, Яндекс.xml, общение только на XML(XML RPC, SOAP etc), данные ты тоже в XML получаешь. Вот тут и появляеться AJAX технология, правда она имеет мало общего с JSON приведённом в этом топике ![]() В любом случае передавать инфу - это меньше трафа чем эту же инфу с разметкой. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]() ![]() ![]() |
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |