друзья... подскажите, как осуществить автоматическое обновление страницы без перезагрузки, если в некий файл внесли изменения
Не, если вопрос звучит как "Скрипт можно?", то тема не соответствующая. При таком раскладе, соответствующей темой будет фриланс
с использованием jquery [js]$('#html_block_id').load('http://your_site.com/address_of_script.php');[/js]
хороший форум: просишь помощи- отсылают то в хелпы, то в фриланс)) смысл тогда его? я, наверное, обратился бы в указанные источники и без советов... хорошо. давайте разберём скрипт по частям, чтоб ценность немного сбить и опыт соответствующий получить. сначала вот что: как обратиться к текстовому файлу (базе), в которую добавили данные? это мне ни о чём не говорит. комменты плз
я штампую сайты десятками только на php, пусть по 3тыр, но успешно. и понятия не имею о mysql и ajax, потому что у меня нет времени их изучать. и, собственно, звание web-программиста не предполагает полиглотства в языках программирования. достаточно знать один, самый распространенный имхо. я отлично знаю php и javscript. ну а профессионалы в web-студиях получают в 10 раз больше, не спорю- они знают... рад за них
пока меня всё устраивает. и моя биография здесь никому не интересна. вопрос открыт. кто даст четкий ответ?
вам же igordata ответил, если вы пишите что знаете javascript, то это значит вы знакомы с таймером и аяксом
с таймером знаком, с аяксом- нет. [js]setTimeOut(function,period)[/js]- таймер- это исмеется ввиду? тогда функция подключения к файлу с помощью аякс будет выглядеть...?
теперь берёте любой javascript фрэймворк, например prototypejs http://www.prototypejs.org/ и вечерами изучаете. но на чистом javascript это будет как-то так: [js] var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { alert(xmlhttp.responseText); } } xmlhttp.open("POST","information.php",true); xmlhttp.send(); [/js] php код PHP: echo "ajax response"; не сложно да?
nikemat Ты пишешь, что знаешь JavaScript и PHP. Но при этом не знаешь Ajax. Такого не бывает, одно противоречит другому, так как PHP + JavaScript - это и есть Ajax Ajax - это не какой-то новый язык программирования, это лишь название технологии, в которой клиентские сценарии (например, написанные на JavaScript) взаимодействуют с серверными сценариями (например, написанными на PHP). Правильно, потому что в коде есть такая строчка: В свойстве responseText объекта xmlhttp содержится ответ, полученный от сервера в текстовом виде. Функция alert его отображает. Тебе это написали просто как наглядный пример запроса к серверу с помощью JavaScript. Ты же можешь делать всё что угодно с этим ответом от сервера.
[js] function ajx(){ var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { obn.innerText=xmlhttp.responseText; } } xmlhttp.open("POST","add.txt",true); xmlhttp.send() } document.getElementById('obn'); setInterval('ajx()',3200); [/js] HTML: <div id=obn> </div> в IE работает, в др.браузерах- нет а самое главное- как мне теперь всё это обработать? там ведь текстовая база, новые сообщения внизу. а мне надо перевернуть массив, как я это делал на php.
Используй JQuery Ajax - он кроссбраузерный вместо add.txt направляй на script.php и в нём твори всё что душе угодно
мне кажется, что [js]$('#html_block_id').load('http://your_site.com/address_of_script.php');[/js] было бы легче )
может и проще, но мне не совсем понятно, как это привязывается к странице. хотя я вчера вечером посидел над тем скриптом, заработало)) в моём случае будет выглядеть как-то так? поправьте, если нет. [js] $('#obn').load('add.php');[/js] HTML: <div id=obn> </obn> сейчас возникла другая проблема: скрипт обновляет данные 1-2 раза, а потом перестаёт. я так понимаю, страница кешируется? но я запрещал кеширование средствами php и в адресе страницы подставлял запрос с time()- то же самое.
по идее должно работать. сейчас проверить не могу. только могу сказать, что следите за статусом и состоянием, может что с ними. [js] xmlhttp.onreadystatechange=function() { if( xmlhttp.readyState == 4) {alert(xmlhttp.status);} if (xmlhttp.readyState==4 && xmlhttp.status==200) { obn.innerText=xmlhttp.responseText; } } [/js] смотрите что приход, когда загуржено состояние 4, каков статус?
По идее это: [js]var xmlHttpObject = false; if(window.XMLHttpRequest) xmlHttpObject = new XMLHttpRequest(); else xmlHttpObject = new ActiveXObject('Microsoft.XMLHTTP');[/js] 100% кроссбраузерно...