Javascript ExtJS Ajax请求超时对Internet Explorer没有影响

Javascript ExtJS Ajax请求超时对Internet Explorer没有影响,javascript,ajax,jquery,extjs,extjs3,Javascript,Ajax,Jquery,Extjs,Extjs3,我使用的是ExtJS3.4。我有一个长时间运行的异步进程,需要等待它完成。它在Firefox上运行良好,但Internet Explorer不会等待。我如何解决这个问题 以下是我对客户端代码的了解: function SaveUser(form, myDataObject, url) { if (form.isValid()) { StatusMessage.show('Please wait. New User Registrations may take up to

我使用的是ExtJS3.4。我有一个长时间运行的异步进程,需要等待它完成。它在Firefox上运行良好,但Internet Explorer不会等待。我如何解决这个问题

以下是我对客户端代码的了解:

function SaveUser(form, myDataObject, url) {
    if (form.isValid()) {

        StatusMessage.show('Please wait. New User Registrations may take up to one minute to complete.');

            Ext.Ajax.request(
            {
                url: url,
                method: 'POST',
                timeout: 30000,
                params: myDataObject,
                success: function (result, request) {
                    StatusMessage.hide();
                    formSubmit = Ext.util.JSON.decode(result.responseText);

                    if (!formSubmit.success) {
                        Ext.Msg.show({
                            title: 'Error',
                            msg: formSubmit.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.MessageBox.WARNING,
                            minWidth: 390,
                            maxWidth: 390,
                            closable: false
                        });                 
                    } else {
                        ShowRegistered();
                    }
                },
                failure: function (result, request) {
                    StatusMessage.hide();
                    ShowServerError(result);
                }

            });
        } else {
            ShowValidationErrors();
        }
    }
CreateUserInActiveDirectory(user);

//Internet Explorer Time Out immediately instead of waiting here
System.Threading.Thread.Sleep(20000);

AuthenticateUser(user);
以下是关于服务器端代码的信息:

function SaveUser(form, myDataObject, url) {
    if (form.isValid()) {

        StatusMessage.show('Please wait. New User Registrations may take up to one minute to complete.');

            Ext.Ajax.request(
            {
                url: url,
                method: 'POST',
                timeout: 30000,
                params: myDataObject,
                success: function (result, request) {
                    StatusMessage.hide();
                    formSubmit = Ext.util.JSON.decode(result.responseText);

                    if (!formSubmit.success) {
                        Ext.Msg.show({
                            title: 'Error',
                            msg: formSubmit.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.MessageBox.WARNING,
                            minWidth: 390,
                            maxWidth: 390,
                            closable: false
                        });                 
                    } else {
                        ShowRegistered();
                    }
                },
                failure: function (result, request) {
                    StatusMessage.hide();
                    ShowServerError(result);
                }

            });
        } else {
            ShowValidationErrors();
        }
    }
CreateUserInActiveDirectory(user);

//Internet Explorer Time Out immediately instead of waiting here
System.Threading.Thread.Sleep(20000);

AuthenticateUser(user);

这不是一个extjs问题,而是一个IE问题。事实上,30000是extjs的默认超时

大多数情况下,这是因为全局IE全局超时设置。查看ReceiveTimeout键的HKCU\Software\Microsoft\Windows\CurrentVersion\Internet设置,如果该键存在,则将其删除;如果不存在,则使用毫秒值创建该键


如果此问题是新出现的且以前从未出现过,请检查您最近安装的最新软件产品,有几种产品可设置此值。

谢谢。我多么讨厌internet explorer。