Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: onreadystatechange, readyState и status в АЯКСЕ

Сообщения:  [1-10]   [11-19] 

 
 автор: coloboc66   (23.08.2006 в 19:18)   письмо автору
 
   для: 1999   (23.08.2006 в 19:13)
 

понял о чем вы говорили.
http://akira.spb.su/upload/ajax/prototype.js
http://akira.spb.su/upload/ajax/kernel.js
это?
- Да- это. prototype.js

   
 
 автор: 1999   (23.08.2006 в 19:13)   письмо автору
 
   для: 1999   (23.08.2006 в 18:48)
 

везде кроме ИЕ =(

   
 
 автор: 1999   (23.08.2006 в 18:48)   письмо автору
 
   для: 1999   (23.08.2006 в 18:25)
 

еееее у меня заработало)))

   
 
 автор: 1999   (23.08.2006 в 18:25)   письмо автору
 
   для: 1999   (23.08.2006 в 18:20)
 

понял о чем вы говорили.
http://akira.spb.su/upload/ajax/prototype.js
http://akira.spb.su/upload/ajax/kernel.js
это?

   
 
 автор: 1999   (23.08.2006 в 18:20)   письмо автору
 
   для: coloboc66   (23.08.2006 в 18:01)
 

=) http://akira.spb.su/
прямо на главной - если прокурутить чуть ниже есть кнопка "читать (2)"
вот ее код:

<input style="border: 1px solid rgb(208, 208, 208); margin-top: -1px;" onclick="sendcom('82');look_comms('82')" id="submit_82" value="Читать (2)" type="button">

в начале страницы есть это:

<script type="text/javascript">
var ajax_646
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
  try {
  ajax_646=new ActiveXObject("Msxml2.XMLHTTP")
 } catch (e) {
  try {
    ajax_646=new ActiveXObject("Microsoft.XMLHTTP")
  } catch (E) {
   ajax_646=false
  }
 }
@else
 ajax_646=false
@end @*/
if (!ajax_646 && typeof XMLHttpRequest!='undefined') {
 try {
  ajax_646 = new XMLHttpRequest();
 } catch (e) {
  ajax_646=false
 }
}
</script>
<script type="text/javascript">
function sendcom(id,name,email,homepage,text){
ajax_646.open("GET","http://akira.spb.su/mod/comment/get.php",true);
ajax_646.onreadystatechange=function() {
  if (ajax_646.readyState==4) {
       if (ajax_646.status==200) {
        document.getElementById('comments_'+id).innerHTML=ajax_646.responseText
       } else if (ajax_646.status==404) {
        document.getElementById('comments_'+id).innerHTML='Error 404 - File not found !'
       } else {
        document.getElementById('comments_'+id).innerHTML='HTTP Status '+ajax_646.status+' !'
       }
  }
}

ajax_646.setRequestHeader('ID',''+id+'')
ajax_646.setRequestHeader('NAME',''+name+'')
ajax_646.setRequestHeader('EMAIL',''+email+'')
ajax_646.setRequestHeader('HOMEPAGE',''+homepage+'')
ajax_646.setRequestHeader('TEXT',''+text+'')
ajax_646.send(null)
}
</script>


ф-ция look_comms

 function look_comms(a){
    if(document.getElementById("comments_"+a).style.display=="none"){
      document.getElementById("comments_"+a).style.display="block";
    }else{
      if(document.getElementById("comments_"+a).style.display=="block"){
    document.getElementById("comments_"+a).style.display="none";
    }
    }
  };

   
 
 автор: coloboc66   (23.08.2006 в 18:01)   письмо автору
 
   для: 1999   (23.08.2006 в 17:56)
 

А этот пример работает у вас? Вы откуда код брали? Надо подумать- я просто привык, что Акира все делает с прототипом. Есть работающая ссылка?

   
 
 автор: 1999   (23.08.2006 в 17:56)   письмо автору
 
   для: 1999   (23.08.2006 в 13:18)
 

собственно весь пример - взял с первой новости блога:

<script type="text/javascript">
var ajax;
try
{
  ajax = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e)
{
  try
  {
    ajax = new ActiveXObject("Microsoft.XMLHTTP")
  }
  catch (e)
  {
    ajax = false;
  }
}
else
{
  ajax = false;
}

if (!ajax && typeof XMLHttpRequest != 'undefined')
{
  try
  {
    ajax = new XMLHttpRequest();
  }
  catch (e)
  {
    ajax = false;
  }
}

function sendcom(id,name,email,homepage,text)
{
  ajax.open("GET","http://akira.spb.su/mod/comment/get.php",true);
  ajax.onreadystatechange=function()
  {
    if (ajax.readyState == 4)
    {
      if (ajax.status == 200)
      {
        document.getElementById('comments_'+id).innerHTML = ajax.responseText;
      }
      else if (ajax.status == 404)
      {
        document.getElementById('comments_'+id).innerHTML = "Error 404 - File not found!";
      }
      else
      {
        document.getElementById('comments_'+id).innerHTML = "HTTP Status " +ajax_724.status+ "!";
      }
    }
  }
}

ajax.setRequestHeader('ID',''+id+'')
ajax.setRequestHeader('NAME',''+name+'')
ajax.setRequestHeader('EMAIL',''+email+'')
ajax.setRequestHeader('HOMEPAGE',''+homepage+'')
ajax.setRequestHeader('TEXT',''+text+'')
ajax.send(null)
}
</script>

так выбираются комментарии к определенной записи в блоге. Вроде бы все просто.
А где же тот самый прототиповский файл?

   
 
 автор: coloboc66   (23.08.2006 в 17:51)   письмо автору
 
   для: 1999   (23.08.2006 в 17:40)
 

"момент момент - а где он их использует?"- посмотрите приведенный вами выше код. А ajax.open() - да - это метод Аякса. Я ж говорю- прототип- это набор функций для работы с Аяксом. Но там кроме стандартных методов аякса много других. Откройте файл с прототипом и посмотрите- там всего полно. С этим всем нужно разбираться. Я лично обломился, может вы способней. А что у вас там за код? Дайте ссылку на работающий пример.

   
 
 автор: 1999   (23.08.2006 в 17:40)   письмо автору
 
   для: coloboc66   (23.08.2006 в 17:34)
 

момент момент - а где он их использует?
хотите сказать, что ajax.open() - это не функция чистого аякса? но он же не сам ее писал?

   
 
 автор: coloboc66   (23.08.2006 в 17:34)   письмо автору
 
   для: 1999   (23.08.2006 в 17:17)
 

Это да. Но здесь только создание объекта АктивХ. А дальше надо писать свои функции. Акира использует для этого прототип. Прототип- это как бы класс Аякса с набором функций, облегчающих написание собственных (его можно скачать из сети). Во всяком случае, лично Я так понимаю ситуацию. Не знаю, как вам, а мне легче было написать пару своих функций, чем разбираться с этим прототипом. Кстати, вот эти
catch(e)
- это тоже ссылки на функции прототипа для обработки исключений. В чистом АЯКСЕ их нет.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования