доброго =) столкнулся с проблемой, я написал простенький скриптик подсчёта хвостов хотелось бы это красиво оформить. хочу с помощью ajax сделать чтобы на страницы было пример всего хостов: 73 - и это число обновлялось при каждом заходе на страницу, не перезагружая страницу. п.с. информацию о кол-ве хостах буду брать с базы данных mysql может у кого-то есть примерчик подкиньте..
Это как??? Как ты хочешь каждый раз заходить на страницу не перезагружая ее?! Свернуть и развернуть браузер?!
если я не правильно выразился.. посмотрите пример на это сайте http://www.videolan.org/vlc/ справа на сайте VLC 0.8.6 downloads: 92,568,975 <--- ЭТО ЧИСЛО ОБНОВЛЯЕТСЯ БЕЗ ПЕРЕГРУЗКИ СТРАНИЦЫ, СЧИТАЕТ КОЛ-ВО ЗАГРУЗОК 1.9 downloads per second
offtop on гыгы. зашли на сайтик, было такое число - 92,586,967. чутка подождали, стало такое число - 92,587,031. обновили страничку... и все по новой =) offtop off
Вот она функция которая считает (вытащил у них): [js] function update() { if (currentCount) { interval = (1000 / rate); if (!displayCount) displayCount = currentCount + 1; else if (displayCount < currentCount) setTimeout("catchUp()", interval / 2); else if (displayCount > currentCount) displayCount += 0; else displayCount += 1; currentCount++; // Update the display setText(document.getElementById(counterID), formatCount(displayCount)); setText(document.getElementById( "dlrate"), rate ); // Reset the update timeout setTimeout("update()", interval); } else { setTimeout("update()", 1000); } }[/js] т.е. работает это след. образом: Аяксом запрашивается с сервера текщее кол-во скачиваний, и интервал с котороым скачивается программа, далее тупо прибавляет по одному через этот интервал. Непонятно нафига это сделано аяксом раз он и так один раз запрашивается при инициализации.... Кстати, на vkontakte.ru так же счетчик работает! P.P.S. Понял почему аякс - каждую минуту посылается запрос на сервер и интервал корректируется.
gkhelloworld пых на сервере, яваскрипт - на клиенте. клиену абсолютно фиолетово, какая технология на сервере ему данные отдает...
помогите с примером setTimeout... Объясните почему не работает этот пример что это? 2 файла один xml другой html html файл выводит информацию из xml файла методом ajax. т.е. информация в xml файле динамическая и обновляется постоянно. ajaxом я хочу вытаскивать информацию из xml файла каждую секунду и показывать её в реально времени в HTML файле без перезагрузки страницы HTML. как счетчик...впринципе это и будет счетчик xml HTML: <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript"> var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; if(window.ActiveXObject) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttp = false; } } else { try { xmlHttp = new XMLHttpRequest(); } catch (e) { xmlHttp = false; } } if (!xmlHttp) alert("Error creating the XMLHttpRequest object."); else return xmlHttp; } function process() { if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { xmlHttp.open("GET", "ajax.php", true); xmlHttp.onreadystatechange = handleServerResponse; xmlHttp.send(null); } } function handleServerResponse() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { xmlResponse = xmlHttp.responseXML; xmlDocumentElement = xmlResponse.documentElement; helloMessage = xmlDocumentElement.firstChild.data; document.getElementById("divMessage").innerHTML = '<i>' + helloMessage + '</i>'; } else { alert("There was a problem accessing the server: " + xmlHttp.statusText); } } } </script> <script type="text/javascript"> interval = (1000 / 1); setTimeout("process()", 1); </script> </head> <body> <div id="divMessage" /> </body> </html> вот xml файл Код (Text): <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <response> 444443 <--- ЭТА ЦИФРА У МЕНЯ ПОСТОЯННО ОБНОВЛЯЕТСЯ! </response> ?> этим скриптом я хотел каждую секунду перезагружать файл xml и показывать данные в реальном времени не перезагружая основную страницу с помощью ajax!
Обновить <div> AJAX'ом Простите за безумно ламерский вопрос,но никак не получается. есть Код (Text): <div id="data"></div> Как мне ей прилепить автообновление на AJAX? Не нужно не обновление контента ничего такого, просто чтоб именно этот Див автообновлялся. Заранее благодарю за посильную помощь.
angelo4ek [js] var req = 0; if (window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch (e){} } else if (window.ActiveXObject) { try { req = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { req = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } } if ( !req ) return; req.open( 'GET', 'http://site.ru/foo/bar.php?give_me_a_div_content', true ); req.send( null ); if ( req.readyState == 4 ) { if ( req.status == 200 ) { document.getElementById( 'data' ).innerHTML = req.responseText; } else { alert( 'Error: '+ req.status + ' '+ req.statusText ); } } [/js] Ну примерно так. Или смотри пост Ti #2.
AterCattus Понимаешь у меня какая проблема,на странице отображение этого дива идет через функцию display(); А построение отображения через шаблоны. Когда я использую стандартные AJAX библиотеки (а перепробывал не мало) эта гадость делает так как надо, только еще и дублирует контент страницы которую я указываю для элемент GET. Да знаю, что можно сказать: - Перестрой отображение, - сразу отвечу: "Невозможно!!!" Я вставлял в функцию отображения блока JavaScript, но он перезагружает всю страницу, при чем именно перезагружает Вот он: [js] <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> [/js] Вот если бы кто помог его проапгрейдить в AJAX, чтоб без перезагрузки страницы,тогда это было бы идеально, а то трафика так не напасешся с таким обновлением дива.
ну что за бред... в FireFox все ок, в IE6 ошибка FALSE - определение отсутствует но в firefoxe ошибка выдается в том случае если перехожу с первой страницы на второстипенную [js]var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; if(window.ActiveXObject) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttp = false; } } else { try { xmlHttp = new XMLHttpRequest(); } catch (e) { xmlHttp = false; } } if (!xmlHttp) alert("Error creating the XMLHttpRequest object."); else return xmlHttp; } function process() { if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { xmlHttp.open("GET", "aurls.xml", true); xmlHttp.onreadystatechange = handleServerResponse; xmlHttp.send(null); } } function handleServerResponse() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { xmlResponse = xmlHttp.responseXML; xmlDocumentElement = xmlResponse.documentElement; helloMessage = xmlDocumentElement.firstChild.data; document.getElementById("divMessage").innerHTML = '<b>' + helloMessage + '</b>'; setTimeout("process()", 1000); } else { alert("There was a problem accessing the server: " + xmlHttp.statusText); } } } // addons ;-) function formatCount(count) { count = count.toString(); for (var i = count.length - 3; i > 0 ; i -= 3) { count = count.slice(0, i) + ' ' + count.slice(i, count.length); } return count; }[/js] ставлю здесь xmlHttp.open("GET", "aurls.xml", true); вместо true -> false - всеравно ошибка одна и та же.! вот сраница: HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Title</title> <script src="/js/ajaxcount.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> setTimeout("process()", 1000); </script> Всего ссылок в базе: <font style="color:#FF0000;"><span id="divMessage">Loading...</span></font>
проблема решина! вот причина всех бед xmlHttp.open("GET", "aurls.xml", true); надо xmlHttp.open("GET", "/aurls.xml", true); в моем случае я использую mod_rewrite