Передача параметров обратного вызова в setTimeout () не работает в IE? - PullRequest
2 голосов
/ 27 декабря 2011

Я использовал код в функции js setTimeout, он работает в Firefox, т. Е. Он перезагружается за секунды. но не работает в IE. Я изменил метод как «POST», но запрос не поддерживается, затем он снова изменился на «GET». Любое решение?

function getCallDetails(cId){
    $.ajax( {
        url : 'callInfo.html?cId='+cId,
        method : "GET",
         dataType: "json",     
        success : function(data) {
        callResult=data.rows;

        showCallDetails(callResult,cId);
        },
        failure : function(form, action) {
        }
    });
    window.setTimeout(getCallDetails, 1000,[cId]);

}

Ответы [ 4 ]

6 голосов
/ 27 декабря 2011

Попробуйте вместо этого следующее:

window.setTimeout(function() { getCallDetails(cId); }, 1000);

Также я бы переместил эту строку в обратный вызов успеха.

6 голосов
/ 27 декабря 2011

Вы используете несовместимую с IE версию setTimeout.
В IE нет способа передать параметры в обратный вызов.

Также, звонить setTimeout очень неправильно; вы получите экспоненциально больше одновременных запросов, потому что каждый вызов генерирует еще два вызова.

4 голосов
/ 27 декабря 2011

Попробуйте:

window.setTimeout(function() {
    getCallDetails(cId);
}, 1000);

Надеюсь, это поможет

2 голосов
/ 13 января 2012

это связано с проблемой кеширования в IE

это решается

 function getCallDetails(cId){
        $.ajax( {
            url : 'callInfo.html?cId='+cId+'&randomNo='+ Math.rand(),
            method : "GET",
             dataType: "json",     
            success : function(data) {
            callResult=data.rows;

            showCallDetails(callResult,cId);
            },
            failure : function(form, action) {
            }
        });
        window.setTimeout(function() { getCallDetails(cId); }, 1000);


    }

и случайно не игнорируется на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...