Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1). (Дмитрий Котеров, оценка: 2)
Goto page 1, 2, 3 ... 22, 23, 24  Next
Author Message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 3:17 am (написано за 11 секунд)
   Post subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы.
Reply with quote

dklab.ru/lib/JsHttpRequest/
Текущая версия - 4.x.

Last edited by Дмитрий Котеров on Tue Oct 24, 2006 7:46 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 12:14 pm (спустя 8 часов 57 минут; написано за 4 минуты 35 секунд)
   Post subject:
Reply with quote

статья не для слабонервных:)
буквально пересыщена технической информацией, что и хорошо, в принципе.
но многие новички попросту ее не поймут.
но с юмором.

Дмитрий, вопрос такого плана:
"передний проход" и "задний проход" имеют отношение к подвергнутому жесточайшей цензуре слову на первом скриншоте?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 4:34 pm (спустя 4 часа 20 минут; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

Интересная мысль. Возможно. ;-)
Но я когда писал, ассоциации не было, честно говоря.
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9993
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 4:48 pm (спустя 13 минут; написано за 54 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
когда писал, ассоциации не было
Э-э... А с чем ещё может ассоциироваться "задний проход"?..
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 197
   поощрить/наказать

Location: 007 495

PostPosted: Thu Feb 03, 2005 6:54 pm (спустя 2 часа 5 минут; написано за 20 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров
Хм, неплохая статейка...
Back to top
View user's profile Send private message Send e-mail
Евгений Галашин
Модератор



Joined: 29 Dec 2003
Posts: 1861
Карма: 31
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 11:50 pm (спустя 4 часа 55 минут; написано за 21 секунду)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
Mozilla 0.7+, FireFox 1.0+
Может, наоборот???
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Fri Feb 04, 2005 12:30 am (спустя 40 минут; написано за 5 секунд)
   Post subject:
Reply with quote

Мозилла 1.7 имелась в виду.
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Fri Feb 04, 2005 8:23 am (спустя 7 часов 52 минуты; написано за 48 секунд)
   Post subject:
Reply with quote

перечитал наблу сегодня... продолжает нравиться, поставлю +3 без возражений
Back to top
View user's profile Send private message
iPalit
Заглянувший



Joined: 30 Jan 2005
Posts: 9
Карма: 0
   поощрить/наказать


PostPosted: Sun Feb 06, 2005 12:26 pm (спустя 2 дня 4 часа 2 минуты; написано за 3 минуты 53 секунды)
   Post subject:
Reply with quote

Начал читать статью и увидел ссылку на Google Suggest. Сходил... У меня Опера 7.60 Build 7321 - динамический поиск не работает:(. Однозначно, связь с инетом есть и все вроде пучком, но - не работает. Всегда выскакивает один и то же вариант списка. В чем проблема?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Sun Feb 06, 2005 6:09 pm (спустя 5 часов 43 минуты; написано за 29 секунд)
   Post subject:
Reply with quote

Что не работает? Гугл? Тогда обратитесь к разработчикам Гугла, если достучитесь до них!
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 197
   поощрить/наказать

Location: 007 495

PostPosted: Sun Feb 06, 2005 8:45 pm (спустя 2 часа 35 минут; написано за 1 минуту)
   Post subject:
Reply with quote

iPalit
У меня тоже в какой-то версии оперы не работало, это нормально. Опера - настолько глючной браузер, что заставить что-нибудь серьезное на ней работать - это проще застрелиться
Back to top
View user's profile Send private message Send e-mail
Caesar
Guest





Карма: 387
   поощрить/наказать


PostPosted: Mon Feb 07, 2005 1:00 pm (спустя 16 часов 15 минут; написано за 1 минуту 59 секунд)
   Post subject: Странно работаетскрипт из примера.
Reply with quote

Если вот тут :dklab.ru/chicken/nablas/demo/JSHttpRequest/t/test.htm

набрать строку для создания md5, а потом сразу нажать Enter - Firefox 1.0 ломится в интернет, а потом радостно сообщает в alert'e следующее:
Quote:
ScriptLoader: unknown pending id: 0
Back to top
phprus
Участник форума



Joined: 25 Jul 2003
Posts: 162
Карма: 9
   поощрить/наказать

Location: Пермь

PostPosted: Mon Feb 07, 2005 1:09 pm (спустя 9 минут; написано за 1 минуту 18 секунд)
   Post subject:
Reply with quote

В том же примере если после ввода сразу нажать Enter то просто перезагружается страница test.htm Это так и должно быть? броузер IE5.5
Back to top
View user's profile Send private message Send e-mail
Caesar
Guest





Карма: 387
   поощрить/наказать


PostPosted: Mon Feb 07, 2005 1:42 pm (спустя 33 минуты; написано за 1 минуту 33 секунды)
   Post subject:
Reply with quote

Насколько я понял, так быть не должно. И уж тем более не должно быть alert'а в firefox. (-:

По уму на Enter должен срабатвыать тот-же код, что и на нажатие кнопки, но из кода этого никак не следует.
Back to top
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Mon Feb 07, 2005 6:36 pm (спустя 4 часа 53 минуты; написано за 47 секунд)
   Post subject:
Reply with quote

А Вы зачем Enter нажимаете? там же загрузка без Enter-а идет.
Обнаруженный Вами эффект не имеет к скрипту загрузки ровно никакого отношения.
Back to top
View user's profile Send private message Send e-mail
Сергей И.
Guest





Карма: 387
   поощрить/наказать


PostPosted: Wed Feb 09, 2005 8:14 am (спустя 1 день 13 часов 38 минут; написано за 2 секунды)
   Post subject: Да... Вы прямо своей статьей америку открыли...
Reply with quote

Все эти средства, а также огромное количество других, о которых сомневаюсь, что вы что-то слышали, использовались, используются уже давно и будут использоваться еще долго. Заслуга же гугла только в том, что они двигают это "в массы"
Back to top
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6837
Карма: 131
   поощрить/наказать


PostPosted: Wed Feb 09, 2005 11:22 am (спустя 3 часа 8 минут; написано за 29 секунд)
   Post subject:
Reply with quote

Сергей И., можно прямые ссылки на такие средства?
Back to top
View user's profile Send private message Send e-mail
phprus
Участник форума



Joined: 25 Jul 2003
Posts: 162
Карма: 9
   поощрить/наказать

Location: Пермь

PostPosted: Wed Feb 09, 2005 6:14 pm (спустя 6 часов 52 минуты; написано за 1 минуту 22 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров
Привычка. Да и на мой взгляд процентов 70 пользователей по привычке нажмут на Enter, а не на кнопку. так что по моему мнению поддержка Enterа должна быть.
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Wed Feb 09, 2005 7:04 pm (спустя 49 минут; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Да какая, к черту, "поддержка Enter"? Это особенность test.html, а не библиотеки!
Вы еще скажите, что должна быть поддержка резервного питания от UPS, а то вдруг пользователь зайдет на страницу и выдернет шнур из розетки.
Back to top
View user's profile Send private message Send e-mail
phprus
Участник форума



Joined: 25 Jul 2003
Posts: 162
Карма: 9
   поощрить/наказать

Location: Пермь

PostPosted: Wed Feb 09, 2005 8:53 pm (спустя 1 час 48 минут; написано за 1 минуту 25 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров
Понял. Вопрос снят.
Ну зачем же так орать?
Back to top
View user's profile Send private message Send e-mail
iogan18tm
Guest





Карма: 387
   поощрить/наказать


PostPosted: Thu Feb 10, 2005 11:08 am (спустя 14 часов 15 минут; написано за 3 минуты)
   Post subject: Не совсем понятно.
Reply with quote

Вы не могли бы пояснить - от чего спасает генерация SID для каждого js-запроса? и почему второй параметр все время null (SCRIPT_SID).
Back to top
J239.com
Guest





Карма: 387
   поощрить/наказать


PostPosted: Thu Feb 10, 2005 5:31 pm (спустя 6 часов 22 минуты; написано за 4 минуты 32 секунды)
   Post subject:
Reply with quote

Дмитрий, гениально!
Я о таком инструменте всю свою php&html жизнь мечтал. Уже руки чешуться что-нибудь эдакое подгружаемое сделать.
Вы один из немногих, кто создает реально универсальные и удобные для других разработчиков скрипты. Например, я активно использую sql_placeholders, что заметно улучшает код, повышает ошибкоустойчивость.
Так держать, жду новых откровений!
Back to top
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Thu Feb 10, 2005 10:01 pm (спустя 4 часа 30 минут; написано за 2 минуты 18 секунд)
   Post subject:
Reply with quote

Вообще-то, есть уже новая версия PHP-загрузчика, на ООП, более красивая и идеологичная. Немножко багов поправлено также. На днях буду обновлять форум, вот тогда ее и выложу в наблу (хочется, чтобы хотя бы недельку обкатали, а то вдруг еще баги есть).

iogan18tm, SID - это для поддержки сессий, чтобы потом session_start() делать в PHP. (Надо же как-то SID определять, если куки недоступны.) Ну а null - потому что не используются сессии в примере, вот и все.
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 387
   поощрить/наказать


PostPosted: Fri Feb 11, 2005 12:58 pm (спустя 14 часов 56 минут; написано за 47 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров

А версию на Perl можете написать?
Back to top
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Fri Feb 11, 2005 6:10 pm (спустя 5 часов 11 минут; написано за 33 секунды)
   Post subject:
Reply with quote

Лично мне она не нужна. Если кому-то понадобится, он может написать самостоятельно, а потом, если захочет, приложить код сюда.
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 387
   поощрить/наказать


PostPosted: Fri Feb 11, 2005 8:42 pm (спустя 2 часа 32 минуты; написано за 2 минуты 39 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров

Так если могли бы написали, а тема в статье очень практичная, если Вы или кто-нибудь могли бы написать серверную часть на Perl было бы не плохо
Back to top
Guest






Карма: 387
   поощрить/наказать


PostPosted: Sun Feb 13, 2005 1:48 am (спустя 1 день 5 часов 5 минут; написано за 5 минут 8 секунд)
   Post subject:
Reply with quote

iogan18tm, SID - это для поддержки сессий, чтобы потом session_start() делать в PHP. (Надо же как-то SID определять, если куки недоступны.) Ну а null - потому что не используются сессии в примере, вот и все.[/quote]
Мне почему-то казалось, что SID - это для организации кеширования. SCRIPT_SID, я имею ввиду.
Кроме того, JSHttpRequest.SID не заполняется не разу (хотя должен в методе open). Впрочем, может это будет в следующей версии библиотеки. =).

Кстати, такой вопрос - если интенсивно это дело использовать, память вся не кончится? Ведь добавление <script в конец отжирает помалу на каждом запросе.
Я тут немного помаявшись сделал это дело на asp.net (c#). На php проще, конечно.
Back to top
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 197
   поощрить/наказать

Location: 007 495

PostPosted: Sun Feb 13, 2005 2:14 am (спустя 26 минут; написано за 33 секунды)
   Post subject:
Reply with quote

Гость wrote:
Ведь добавление <script в конец отжирает помалу на каждом запросе
Ага. На 50 запросе может быть и начнет немного нехватать памяти
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Sun Feb 13, 2005 4:07 am (спустя 1 час 53 минуты; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

Гость wrote:
Мне почему-то казалось, что SID - это для организации кеширования. SCRIPT_SID, я имею ввиду.
Нет, это для сессий.
Гость wrote:
если интенсивно это дело использовать, память вся не кончится?
Вопрос открытый. По-хорошему надо бы это дело протестировать, но - никак руки не дойдут. Как только появится реальная необходимость, видимо.
По идее, там потом эти тэги <script> удаляются. Не знаю, насколько хорош сборщик мусора в JavaScript (и есть ли он там вообще).
Back to top
View user's profile Send private message Send e-mail
phprus
Участник форума



Joined: 25 Jul 2003
Posts: 162
Карма: 9
   поощрить/наказать

Location: Пермь

PostPosted: Tue Feb 15, 2005 3:57 pm (спустя 2 дня 11 часов 49 минут; написано за 33 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров
А когда будет выложена новая версия PHP-загрузчика?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Thu Feb 17, 2005 1:59 am (спустя 1 день 10 часов 1 минуту; написано за 1 минуту 22 секунды)
   Post subject:
Reply with quote

Выложил. dklab.ru/chicken/nablas/demo/JSHttpRequest/

Заодно перевел процесс обновления dklab.ru на rsync. Похоже, про это тоже надо статью писать, пока еще не доделал отдельную программу.
Back to top
View user's profile Send private message Send e-mail
kukutz
Заглянувший



Joined: 19 Feb 2005
Posts: 5
Карма: 1
   поощрить/наказать


PostPosted: Sat Feb 19, 2005 5:21 pm (спустя 2 дня 15 часов 22 минуты; написано за 14 секунд)
   Post subject:
Reply with quote

У представленного метода есть достоинства и недостатки.

Достоинствами являются:
  * чистота history
  * кроссбраузерность

Недостатком является:
  * отсутствие обработки ошибок

Есть другой подход: in.jetstyle.ru/in/dev/by/geronimo/3414_universalnyjj_dhml_messenger/comments

Его достоинствами являются:
  * обработка ошибок
  * кроссбраузерность

Недостатком является:
  * засорение history браузера "левыми" элементами

Нет идей, как можно было бы совместить достоинства обоих подходов?

P.S. Подробнее о недостатке "отсутствие обработки ошибок".

Представим, что из-за какой-то причины (обрыв связи, скажем), Javascript не докачался. Возникнет js-ошибка и все скрипты работать перестанут. Повторный запрос станет невозможен.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Sat Feb 19, 2005 10:11 pm (спустя 4 часа 49 минут; написано за 2 минуты 28 секунд)
   Post subject:
Reply with quote

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

Может быть, у тэга <script> тоже есть событие onload, да вот только не во всех браузерах это поддерживается. Более того, даже у IFRAME onload поддерживается не всеми браузерами, насколько я знаю.

При желании можно также сделать обработку ошибок просто по тайм-ауту: если за 10 секунд ничего не загрузилось, значит, ошибка. Конечно, это не совсем хорошо, но хоть что-то.
Back to top
View user's profile Send private message Send e-mail
johnny
Заглянувший



Joined: 19 Feb 2005
Posts: 1
Карма: 0
   поощрить/наказать

Location: Санкт-Петербург

PostPosted: Sat Feb 19, 2005 11:03 pm (спустя 52 минуты)
   Post subject:
Reply with quote

Библиотека отличная! А у меня вопрос об одном приеме, который был в ней использован. Я долго себя сдерживал, но уж больно хотелось узнать: конструкция
Code (JavaScript): скопировать код в буфер обмена
(function() {...})();
используется исключительно для локализации переменных count, pending, cache или есть еще какой-то тайный смысл? ;-)
Back to top
View user's profile Send private message
kukutz
Заглянувший



Joined: 19 Feb 2005
Posts: 5
Карма: 1
   поощрить/наказать


PostPosted: Sat Feb 19, 2005 11:18 pm (спустя 15 минут; написано за 59 секунд)
   Post subject:
Reply with quote

Quote:
При желании можно также сделать обработку ошибок просто по тайм-ауту: если за 10 секунд ничего не загрузилось, значит, ошибка. Конечно, это не совсем хорошо, но хоть что-то.
А Вы уверены, что setTimeout-скрипты продолжают работать при возникновении исключительной ситуации?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Sat Feb 19, 2005 11:30 pm (спустя 12 минут; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

johnny wrote:
используется исключительно для локализации переменных count, pending, cache
Да, только для этого. Не люблю засорять глобальную область видимости.
kukutz wrote:
А Вы уверены, что setTimeout-скрипты продолжают работать при возникновении исключительной ситуации?
Думаю, что продолжают - по крайней мере, при обрыве связи или застревании.
Back to top
View user's profile Send private message Send e-mail
dinoel
Заглянувший



Joined: 21 Feb 2005
Posts: 9
Карма: 2
   поощрить/наказать


PostPosted: Mon Feb 21, 2005 6:19 am (спустя 1 день 6 часов 49 минут; написано за 1 минуту 53 секунды)
   Post subject: А зачем каждый раз добавлять <script> , если можно создать один раз, а потом менять src?
Reply with quote

А зачем каждый раз добавлять <script> , если можно создать один раз, а потом менять src? Правда есть подозрение, что не все браузеры это поддерживают..
Дмитрий Котеров
А изобретённую вами технологию я применял уже месяц назад -) Правда немного с другой целью - чтобы ставить куки пхп скриптом, который выполняется на другом домене (нужна была авторизация - форма логина на одном домене, а проверка логина/пароля - на другом)
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 411
   поощрить/наказать


PostPosted: Mon Feb 21, 2005 7:20 am (спустя 1 час 1 минуту; написано за 33 секунды)
   Post subject:
Reply with quote

dinoel wrote:
А зачем каждый раз добавлять <script> , если можно создать один раз, а потом менять src? Правда есть подозрение, что не все браузеры это поддерживают..
Кажется, я это проверял, и, действительно, не все поддерживают. Впрочем, точно не помню, надо будет еще раз проверить.
Back to top
View user's profile Send private message Send e-mail
VasT
Guest





Карма: 387
   поощрить/наказать


PostPosted: Mon Feb 21, 2005 12:03 pm (спустя 4 часа 42 минуты)
   Post subject: наконец-то кто-то еще догадался про подгрузку данных через JS ))
Reply with quote

Ура!! Наконец-то я нашел в сети еще одну реализацию давно уже применяемой мной идеи )). Нечто подобное у нас реализовано и работет уже около полутора лет. Для желающих сравнить подходы пример реализации идеи: dist.ustu.ru. О кроссбразерности речь не идет - этого просто не требовалось для данного проекта. А об отличиях можно поговорить подробнее...
Back to top
dinoel
Заглянувший



Joined: 21 Feb 2005
Posts: 9
Карма: 2
   поощрить/наказать


PostPosted: Mon Feb 21, 2005 3:35 pm (спустя 3 часа 31 минуту; написано за 1 секунду)
   Post subject: Минусы данного метода
Reply with quote

Я вот думаю, что в гугле тоже не дураки сидят :) И почему они не использовали этот метод непонятно. Вероятно, есть какие то минусы, возможно память съедает.. Надо будет попробовать.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Goto page 1, 2, 3 ... 22, 23, 24  Next
Page 1 of 24    Email to a Friend.
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML