多个AJAX调用让IE抱怨

时间:2011-03-16 19:22:52

标签: javascript jquery ajax internet-explorer-8

所以我们有这个Javascript函数:

function GenerateTermSheet()
        {
            var urlString = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/RenderPartialTermSheetView")%>";
            $('#termSheetPopup input[type="checkbox"]:checked').each(function(){
                var checkedName = $(this).attr("name");
                var json = 
                {
                    id : GetGUIDValue(),
                    viewName : checkedName
                }
                $.ajax({
                    type: "POST",
                    url: urlString,
                    async: false,
                    data: json,
                    success: function(data) {
                        $('#termSheetPrinted').append(data + '<br>');
                    }
                });
            })
            $('#termSheetPopup').dialog('close');
            $('#termSheetPrinted').dialog('open');
            $("#termSheetPrinted").jqprint();
        }

当我们调用这个函数并且它必须遍历很多项时,IE决定抱怨并削减Javascript进程。我们在Firefox中从来没有遇到过这个问题,所以我知道它只是IE(特别是8个)。

你们知道我能用IE在网上工作的方式吗?

注意:我知道同步AJAX是延迟的,但我们需要它来处理这个特定情况,所以调用按顺序完成,而不是之后实际发出的一些AJAX调用,在之前调用之前完成。

编辑:从IE返回错误 - &gt;

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Timestamp: Wed, 16 Mar 2011 19:37:48 UTC


Message: Object doesn't support this property or method
Line: 290
Char: 13
Code: 0
URI: https://extranetint.chathamfinancial.com/mvc/Indications.cfc/results/1373c0e6-2696-4b7a-a911-11a71efcf83b

3 个答案:

答案 0 :(得分:0)

至于你的异步问题,这可能有些使用http://vimeo.com/12529436 Paul Irish:我从jQuery Source中学到的10件事。如果你通过它,他提到了一个方法,你可以使用它,你必须以特定的顺序运行多个ajax调用。

答案 1 :(得分:0)

可能有太多的并发请求。 IE6 / 7可以处理2,IE8最多可以处理6个,除非你拨号,然后是2。

答案 2 :(得分:0)

当代码混乱时会出现这种错误,我认为这不是ajax调用中的超时问题或类似问题。

查看第一个变量的定义,也许你在另外两个引号内有“xxx”这个事实。使用像

这样的东西
 var urlString = '<%= System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/RenderPartialTermSheetView")%>';

并检查是否有效。还要检查是否应在变量内容中转义其他内容。也许一个简单的事情实际上可以做到这一点。否则,应该像其他人所说的那样对ajax呼叫进行检查。