Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Динамическое обновление

#1 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0
0

Отправлено 05 Январь 2009 - 15:48

Ajax - это технология взаимодействия клиент-сервер, т.е. с помощью данной технологии можно автоматически "перезагружать" определенные элементы страниц.

В общем у меня такой вопрос - как можно сделать на Java Script чтоб допустим в <span id="ajax">обновлялся контент</span>. Точней обновлялось содержание этого SPANa через определенный интервал?

 

 

  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 05 Январь 2009 - 16:28

Ajax - это технология АСИНХРОННОЙ(синхронной) работы JavaScript с XML(который формируется на сервере)
Но также есть возможность возвращать обычный текст, не в формате XML.

В общем у меня такой вопрос - как можно сделать на Java Script чтоб допустим в <span id="ajax">обновлялся контент</span>. Точней обновлялось содержание этого SPANa через определенный интервал?


Запросто. Есть такая функция в JS как
setInterval(имя_функции, время_повтора_в_милисекундах)

А вот и мой маленький примерчик.
<html>
<head>
<script type="text/javascript">
   function blockDinamic()
	{
		var blocks = new Array("блок1","блок2","блок3","блок4");
		var n = Math.floor(Math.random()*(blocks.length));
		document.getElementById('ajax').innerHTML = blocks[n];
	}

setInterval(blockDinamic, 1000);

</script>
</head>
<body>
	<div id="ajax"></div>
</body>
</html>

  • 0

#3 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 05 Январь 2009 - 16:55

оО... точно, СетИнтервал! Я просто помню раньше делал как-то часы и там каждую секунду обновлялось, а как - забыл... Спасиб))
зы. я так понял - blocks[n], в место [n] нужно поставить номер блока?
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 05 Январь 2009 - 17:12

Нет это я для примера сделал, а можно как ты и думал с помощью Ajax грузить инфу с PHP и вставлять :)
  • 0

#5 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 05 Январь 2009 - 20:17

Ну я именно твоим примером и хотел. Просто синтаксис не знаю((


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#6 Xap

Xap
  • Пользователь
  • 1 520 сообщений
  • Репутация: 0

Отправлено 05 Январь 2009 - 23:22

А Ajax снижает нагрузки на сервер?
  • 0

#7 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 05 Январь 2009 - 23:45

ну по сути да.
http://ajaxhelp.net/ajaxpage.html - вот по читай


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Январь 2009 - 03:19

Я тут привёл пример как рандомно выводить через каждые 1 сек новый блок...
Так вот тебе просто надо с помощью Ajax посылать запрос на сервер, а на сервере просто обращаться к БД и выбирать нужные тебе блоки, парсить прям там HTML и возвращать обратно. Затем просто возвращенную информацию запихнуть в Div

Вот почитай
_http://www.ajaxa.net/2007/03/30/ajax-s-chego-nachat/
  • 0

#9 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 06 Январь 2009 - 13:55

ZiTisS, а как сделать так, чтоб в место "Блок №" просто обновлялось содержимое?
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Январь 2009 - 21:30

Во-первых, не ZiTisS, а ZiTosS :rolleyes:

Во-вторых, я же тебе не зря ссылку дал
_http://www.ajaxa.net/2007/03/30/ajax-s-chego-nachat/

1)К примеру 1.php
Файл JS с объектом xmlHttpRequest(как раз тот самый Ajax)
<html>
<head>
<script type="text/javascript" language="javascript">
function makeRequest()
{
   var http_request = false;

   if (window.XMLHttpRequest)
   { // Mozilla, Safari, ...
	  http_request = new XMLHttpRequest();
	  if (http_request.overrideMimeType)
	  {
		 http_request.overrideMimeType('text/xml');
		 // Читайте ниже об этой строке
	  }
   }
   else if (window.ActiveXObject)
   { // IE
	  try
	  {
		 http_request = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (e) {
		 try
		 {
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
		 } catch (e) {}
	  }
   }


   if (!http_request)
   {
	  alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP ');
	  return false;
   }

   http_request.onreadystatechange = function() { alertContents(http_request); };
   http_request.open('GET', "./file.php", true);
   http_request.send(null);
}

function alertContents(http_request)
{

   if (http_request.readyState == 4)
   {
	  if (http_request.status == 200)
	  {
		 document.getElementById('ajax').innerHTML = http_request.responseText;
	  } else {
		 alert('С запросом возникла проблема.');
	  }
   }
}

setInterval(makeRequest, 4000);
</script>
</head>
<body>

<div id="ajax">Начальный контент</div>
</body>
</html>

И файл file.php (лежит там же где и файл, который отправляет запрос, но это не обязательно, путь указывается в функции запроса)
<?php

echo rand(1,100);

?>

Ну уж как вывести определённый контент из БД я думаю объяснять не придётся, если нужно с определёнными ID можно передавать их через GET в ссылке отправки запроса :)
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru