Почему этот setTimeout не работает и связанный вопрос внутри - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть этот скрипт на моей странице, и функция setTimeout никогда не срабатывает.Сейчас это просто предупреждение, но я просто проверяю его.Я делаю мета-обновление на странице сразу после нее, если это какая-то подсказка, но я также дал 10-секундную задержку, чтобы страница не обновлялась до того, как она должна сработать.

Кроме того,связанный с этим вопрос: если я запускаю javascript с задержкой, скажем, 10 секунд (с setTimeout), и в этом javascript я пытаюсь изменить элемент дизайна, которого нет на странице, когда объявлен setTimeout, но он будет к тому временискрипт запущен.Будет ли это работать?

<script language=javascript>

var xmlhttp_get_memento;    
function loop_alerte(){
    setTimeout( function() {
        alert("timeout");
    }, 5000);
    xmlhttp_get_memento = new XMLHttpRequest();
    if (xmlhttp_get_memento==null)
    {
        alert ("Browser does not support HTTP Request (1)");
        return;
    }   
    var url="crm/ajax/get_mementos.php";
    url=url+"?sid="+Math.random();
    xmlhttp_get_memento.onreadystatechange=function() {
        if (xmlhttp_get_memento.readyState == 4) {  
            alert(xmlhttp_get_memento.responseText);                                        
            schimbare_tip_cursor("default");
        }
        else{
            schimbare_tip_cursor("progress");
        }
    };

xmlhttp_get_memento.open("GET",url,true);
xmlhttp_get_memento.send(null);
}

loop_alerte();
</script>';

Ответы [ 3 ]

1 голос
/ 27 сентября 2011

Ваш setTimeout выглядит хорошо, так что, вероятно, что-то еще не так.Вы пытались использовать отладчик javascript, чтобы увидеть, нет ли ошибок?

Что касается вашего второго вопроса, да, это не должно быть проблемой, так как анонимная функция внутри setTimout не будет оцениваться доэто работает.Живой пример здесь: http://jsbin.com/afonup/2/edit Как с jQuery, так и без него.

0 голосов
/ 27 сентября 2011

Очистка вашего кода была бы хорошим началом.Я могу представить, что браузер не понимает тег <script language=javascript>.Я предлагаю использовать <script type="text/javascript">, и если вам повезет, ваш javascript может работать!

0 голосов
/ 27 сентября 2011

В вашем setTimeout нет ничего плохого, вам нужно будет выполнить дальнейшую отладку.
Что касается вашего второго вопроса - функция будет работать, но все, что вы пытались сделать, не будет работать.

...