Завантаження даних з сервера без прямого поновлення

Завантаження даних з сервера без прямого поновлення

Для тих, хто не знає, тепер модно використовувати понад динамічні сторінки.
Тобто сторінки, які отримують або відправляють дані на сервер без перезавантаження самої себе, практично непомітно для користувача.

для цього є три (і ще один, але про нього пізніше) способи:
  • HttpRequest (ActiveX Microsoft.XMLHTTP для MSIE або XMLHttpRequest для Firefox)
    MSIE 6.0+, Firefox 1.0+, Netscape 7 +
  • Завантаження php-обробника, як зовнішнього скрипта ( )
    MSIE 5.5+, Opera 7 +
  • Використання невидимого iFrame (нульфрейма)
    MSIE 5.5+, Opera 7 +, Firefox 1.0+, Mozilla 0.9+, Netscape 7 +
ось приклад роботи всіх цих трьох шляхів:

а ось соодержімое всіх трьох php-обробників:


всі три способи мають свої переваги і недостататкі.

XMLHttpRequest
+ має найвищу швидкість виконання
+ непомітний для користувача (ніяких прелоадера в statusbar`е)
- підтримується тільки MSIE 6.0+, Firefox і Netscape 7 +
- не спрацює, якщо в MSIE відключена обробка ActiveX
Завантаження php-обробника, як зовнішнього скрипта
+ має хорошу швидкість виконання
+ працює в MSIE 5.5+, Opera 7, Firefox 1.0+, Mozilla 0.9+, Netscape 7
- не працює в Opera 8 і Netscape 8
- в браузерах відображається preloader
Використання невидимого iFrame
+ працює у всіх браузерах
+ після запиту php файл може працювати самостійно
- має низьку швидкість виконання
- забруднює історію браузера
- в statusbar`е браузерів відображаються прелоадери.

Що стосується третього способу, то він практично вибуває з боротьби за виживання, але у перших двох теж свій великий недолік - некроссбраузерность.
На щастя є вихід, а саме метод, який об'єднує перші два способи і працює на високих швидкостях у всіх браузерах!
Метод цей - # 91; b] Subsys_JsHttpRequest # 91; / b]. розроблений dk lab.

на сторінці розробника, посвещённой цим методом, не дуже хороші приклади, багато зайвого, важко перейнятися суттю. проте зробити це варто, якщо хочете використовувати всі можливості цього набору бібліотек для обходу всіх глюків і багів.
я ж все це справа спростив до нашого прикладу. подивитися його можна тут - http: # 047; # 047; alx.com.ru/stats/dataload/test.html.

ось, що ще є в файлі test.html:

а от вміст php-файлу, що виконує обробку запиту:


+ папка dk_JsHttpRequest. в якій знаходяться JS- і PHP-бібліотеки.

ти маєш на увазі имеено розвиток рішення Subsys_JsHttpRequest або ідеї в цілому?


Поки це просто короткий приклад яких багато. Xорошо б більш закінчений реальний проект з закінченим кодом, а не просто "ми получіллі рядок". Народ реально не знає що з цим робити можна, хто то JS код віддає, що потім на eval, хто то парсит сам і мало хто знає що префікс XML не дарма стоїть Як скласти не дуже кривою XML словник для свого протоколу, працювати з ним на клієнті.

DOM (для XML краще XPath, це для редагування контенту) не потрібно обяснять, тут головне дати приманку, шукає знайде необхідне.

якщо не помиляюся це єдиний спосіб зміцнювати файли без перезавантаження сторінки.


Заповнення форми все одно на користувача, просто відправка в конкретний фрейм, байдуже якої.

Завантаження даних з сервера без прямого поновлення

Скажіть, а як зробити щоб цей скрипт отримував дані з сервера наприклад кожну секунду?
тобто в даному випадку дані з сервера загружаються при натисканні на button.
А якщо це чат. завантажувати нові повідомлення потрібно досить часто. Як це можна зробити?
я так розумію потрібна функція яка буде тільки завантажувати з сервера дані.
ісполюзую Subsys_JsHttpRequest.

Завантаження даних з сервера без прямого поновлення

еее. ну для всього є відповідні функції. в даному випадку можна використовувати setInterval () або setTimeout (), але цього вам буде мало для написання чату. thumbs-up