Ищем ...
пятница, 18 сентября 2009 г.

AJAX подгрузка контента в указанный DIV


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

AJAX (Asynchronous Javascript and XML) — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.

Установка мощных JS(JavaScript) библиотек не всегда оправдана и не всегда нужна. Поэтому предлагаю вам один из самых простых вариантов организации асинхронного обмена данными на странице.

В моем варианте это файл
ajax.js со следующим содержимым:

  1. function newContent( link, target) {
  2. /*
  3. link - URL адрес подгружаемой страницы
  4. target - DIV в который мы подгружаем контент
  5. */
  6. var contaner = document.getElementById(target);
  7. contaner.innerHTML = 'Загрузка ...';
  8. var resource = getRequest();
  9. if( resource )
  10. {
  11. resource.open('get', link);
  12. resource.onreadystatechange = function ()
  13. {
  14. /*Получаем значение, указывающее текущее состояние элемента управления*/
  15. if(resource.readyState == 4)
  16. {
  17. contaner.innerHTML = resource.responseText;
  18. }
  19. }
  20. resource.send(null);
  21. }
  22. else
  23. {
  24. document.location = link;
  25. }
  26. }
  27. /* Функция для получения метода для работы с браузерами */
  28. function getRequest(){
  29. try { return new XMLHttpRequest() }
  30. catch(e)
  31. {
  32. try { return new ActiveXObject('Msxml2.XMLHTTP') }
  33. catch(e)
  34. {
  35. try { return new ActiveXObject('Microsoft.XMLHTTP') }
  36. catch(e) { return null; }z
  37. }
  38. }
  39. }
* This source code was highlighted with Source Code Highlighter.


Вызов в html делается следующим образом(index.html):

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="ajax.js">script>
  4. head>
  5. <body>
  6. <a href="" onclick="newContent('newcontent.html','TARGET')">
  7. Вставить контент файла newcontent.html в див TARGET
  8. a>
  9. <div id="TARGET">div>
  10. body>
  11. html>
* This source code was highlighted with Source Code Highlighter.


Вот собственно и маленькое простейшее решение.
 
Вверх!