Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2008, 17:31
Antihrist
 
Сообщений: n/a

Автообновление <div> без перезагрузки страницы
Здраствуйте!

Вот возник такой вопрос:
Можно ли автоматически обновить способом AJAX элемент страницы <div>, по времени без перезагрузки страницы и без запроса к странице на которой существует этот див.
Тоесть чтобы просто обновлялся именно сам див, а страницу с ним при этом запрашивать не нужно было,так как у меня специфическое отображение этого дива.
Я нашел решение в Яваскрипт, но оно перезагружает страницу:
<script>
<!--

var limit=\"0:30\"

if (document.images){
var parselimit=limit.split(\":\")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh(){
if (!document.images)
return
if (parselimit==1)
window.location.reload()
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+\" minutes and \"+cursec+\" seconds left until page #refresh!\"
else
curtime=cursec+\" seconds left until page refresh!\"
window.status=curtime
setTimeout(\"beginrefresh()\",1000)
}
}

window.onload=beginrefresh
//-->
</script>

Возможно ли реализовать такое же решение только стредствами AJAX? Помогите пожалуйста.
Или же какие то свои примеры если можно.

Последний раз редактировалось Андрей Параничев, 25.07.2008 в 17:52.
Ответить с цитированием
  #2 (permalink)  
Старый 25.07.2008, 17:54
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Переформулируйте вопрос. Код, который вы выложили, занимается обновлением страницы каждые 30 сек. Как можно его сделать без обновления страницы? Какую именно задачу вам нужно решить?
Ответить с цитированием
  #3 (permalink)  
Старый 25.07.2008, 17:56
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

ага, и окуда и чем обновлять див?
Ответить с цитированием
  #4 (permalink)  
Старый 25.07.2008, 18:31
Аватар для antihrist
Новичок на форуме
Отправить личное сообщение для antihrist Посмотреть профиль Найти все сообщения от antihrist
 
Регистрация: 25.07.2008
Сообщений: 5

переформулирую вопрос!
Как автоматически обновить элемент <div id="data"></div> находящийся на странице data.php? При этом не запрашивая саму страницу,а только этот отдельный элемент.
Ответить с цитированием
  #5 (permalink)  
Старый 25.07.2008, 18:32
Аватар для antihrist
Новичок на форуме
Отправить личное сообщение для antihrist Посмотреть профиль Найти все сообщения от antihrist
 
Регистрация: 25.07.2008
Сообщений: 5

Не нужно ни откуда, ни чем, просто обновлять его через время и все.
Ответить с цитированием
  #6 (permalink)  
Старый 25.07.2008, 18:37
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

а смысл его обновлять, если он ниоткуда контент не тянет?
Ответить с цитированием
  #7 (permalink)  
Старый 25.07.2008, 18:41
Аватар для antihrist
Новичок на форуме
Отправить личное сообщение для antihrist Посмотреть профиль Найти все сообщения от antihrist
 
Регистрация: 25.07.2008
Сообщений: 5

контент в нем обновляется со временем средствами ПХП, мне нужно только чтобы он отображался через некоторое время обновленным, а то для того чтобы его просмотреть нужно обновлять страницу.
Ответить с цитированием
  #8 (permalink)  
Старый 25.07.2008, 18:44
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

вот, уже вытянули кусок: с сервера контент тянется, из пхп

Так вот на пхп пишешь отдачу контента дива по запросу, а в скрипте пишеш AJAX запрос на сервер (к этой пхп-хе) по таймеру и всё...

Последний раз редактировалось Андрей Параничев, 25.07.2008 в 21:22.
Ответить с цитированием
  #9 (permalink)  
Старый 26.07.2008, 19:22
Новичок на форуме
Отправить личное сообщение для Rollyz Посмотреть профиль Найти все сообщения от Rollyz
 
Регистрация: 26.07.2008
Сообщений: 5

Скрипт ajax.js
// simple on rollyz.net

var xmlHttp = createXmlHttpRequestObject(); 
function createXmlHttpRequestObject() 
{
  var xmlHttp;
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  if (!xmlHttp)
    displayError("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}
function process()
{
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
// Страница откуда будем выдергивать инф. может быть и .php только б
// стандарт xml
    xmlHttp.open("GET", "stat.xml", true);  
    xmlHttp.onreadystatechange = handleServerResponse;
    xmlHttp.send(null);
  }
}
function handleServerResponse() 
{
  if (xmlHttp.readyState == 4) 
  {
    if (xmlHttp.status == 200) 
    {
      xmlResponse = xmlHttp.responseXML;
      xmlDocumentElement = xmlResponse.documentElement;
      lcount = xmlDocumentElement.firstChild.data;
      lcount = formatCount(lcount);
      document.getElementById("lcount").innerHTML = '<b>' + lcount + '</b>';
               setTimeout("process()", 1000);                               
    } 
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}


Файл xml
Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>100</response>
html
у меня это SPAM ты можешь исправить на div в js файле и тут тоже, поменять прийдется
<span id="lcount">Loading...</span>

дума как включать в html файл js ты знаешь..вот собственно и все...
если нужно чтобы оновляло вставь на страницу еще это
<script>
setTimeout("process()", 1000);
</script>
это значит что функцию будет вызывать каждую секунду.
пример использовался для подсчёта кол.ва хостов в онлайн режиме типа как кол-ко регистраций ВКОНТАКТЕ.ру - но это упрощённый вариант!
Ответить с цитированием
  #10 (permalink)  
Старый 26.07.2008, 20:47
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Rollyz
типа как кол-ко регистраций ВКОНТАКТЕ.ру - но это упрощённый вариант!
Уж не говорили бы того, чего не знаете.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 17:36
Автообновление страницы Илья Общие вопросы Javascript 1 09.03.2008 17:45