所以我们有这个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
答案 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呼叫进行检查。