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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Почему скрипт на Mozilla FireFox не работает?
 
 автор: Roma   (13.04.2007 в 13:40)   письмо автору
 
 

я извеняюсь на настойчивость, но мне все-же надо узнать почему скрипт на Mozilla FireFox не работает?

function load()
 {
    var reg = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    var url= "load.php?t=1";
    if(reg)
    {
       reg.onreadystatechange = function readystate()
       {
           if(reg.readyState==4)    // не выполняется это условие
           {
             if(reg.status==200)
             {
                document.getElementById('divka').innerHTML = reg.responseText;
                setTimeout('load();',2000)
             }
             else alert("Произошла ошибка "+ req.status+":\n" + req.statusText)
           } 
        }
      reg.open("GET", url, true);
      reg.send();
    }

 }

   
 
 автор: 12345   (13.04.2007 в 14:13)   письмо автору
 
   для: Roma   (13.04.2007 в 13:40)
 

А он где-то будет работать?
var reg - создаёт временный объект, который успеет дать запрос и уничтожится по окончании функции. Как и reg.onreadystatechange соответственно.

   
 
 автор: Roma   (13.04.2007 в 14:25)   письмо автору
 
   для: 12345   (13.04.2007 в 14:13)
 

Разобрался.
Все я сделал правильно, а проблема была в том, что я написал reg.send() а надо было reg.send(null)

   
 
 автор: 12345   (13.04.2007 в 15:16)   письмо автору
 
   для: Roma   (13.04.2007 в 14:25)
 

Действительно, в других примерах так же. Почему же он работает?

   
 
 автор: RMW   (13.04.2007 в 18:12)   письмо автору
 
   для: 12345   (13.04.2007 в 15:16)
 

Здесь очевидно т.н. closure
Вот схожий пример:

<script>
function f()
{
  var v='abc';
  document.getElementById('button').onclick=function(){alert(v)}
}
onload=f;
</script>
<button id="button">Alert v</button>

   
 
 автор: 12345   (13.04.2007 в 19:28)   письмо автору
 
   для: RMW   (13.04.2007 в 18:12)
 

В данном примере - да, но здесь не уничтожается document.getElementById('button').В том примере совсем другое - сделали локальный объект XmlHttp, сделали в нём клошуру Ну и что? Всё равно по окончании load() объект reg должен исчезнуть вместе со своей клошурой. А она не пропадает.

   
Rambler's Top100
вверх

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