Javascript 此页上的脚本可能正忙,或者已停止响应。Asp.net

Javascript 此页上的脚本可能正忙,或者已停止响应。Asp.net,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个页面在Firefox中出现了以下错误: 此页上的脚本可能正忙,或者已停止响应。 您可以立即停止脚本,也可以继续查看脚本 将完成 这是我的jquery代码: function uploadComplete(sender, args) { var imgDisplay = $get("imageEmployeeTemp"); var img = new Image(); img.onload = function

我有一个页面在Firefox中出现了以下错误:

此页上的脚本可能正忙,或者已停止响应。 您可以立即停止脚本,也可以继续查看脚本 将完成

这是我的jquery代码:

 function uploadComplete(sender, args) {
             var imgDisplay = $get("imageEmployeeTemp");
             var img = new Image();
             img.onload = function () {
             imgDisplay.style.cssText = "height:100px;width:100px";
             imgDisplay.src = img.src;
             };
             img.src = "/Resources/Images/Employee/" + args.get_fileName();
         }

         $(document).ready(function () {
             $('#TxBx_BasicSalary').focusout(function () {

                var EmployeeId = $('#Hid_EmpID').val();
                if (EmployeeId == 0) {
                    return;
                }
                $.ajax({
                    type: "POST",
                    cache: false,
                    contentType: "application/json; charset=utf-8",
                    url: '/WebService/IncDedWebService.asmx/GetInceDed',
                    data: '{ "id": "' + EmployeeId + '" }',
                    dataType: 'json',
                    success: function (data) {
                  var data = $.parseJSON(data.d)
                  var TotalIncentives = data["TotalIncentives"];
                  var TotalDeduction = data["TotalDeduction"];
                  var BasicSalary = $("#TxBx_BasicSalary").val();
                  var GrossSalary = parseInt(BasicSalary) + parseInt(TotalIncentives)
                   $('#Ltrl_GSalary').html(GrossSalary);
                   $('#Hid_GSalary').val(GrossSalary);  
                  $('#Ltrl_NetSalary').html(GrossSalary - parseInt(TotalDeduction));
                   $('#Hid_NetSalary').val(GrossSalary - parseInt(TotalDeduction));
                 },
                     error: function () { alert("error"); }
                 });
            });
             var id = "#<%= Rtb_PayMode.ClientID %>";
             var bool = false;
             $(id).click(function () {
                HideShowRows();
                 bool = true;
             });

             if (!bool) {
                 HideShowRows();
             }
             function HideShowRows() {
                var BankInfo = $('#BankInfo');
                 var BankAccount = $('#BankAccount');
                 if ($('#<%= Rtb_PayMode.ClientID %> input:checked').val() == '1') {
                     BankInfo.hide();
                     BankAccount.hide();
                }
                else {
                     BankInfo.show();
                     BankAccount.show();
                 }
             }
         });
函数上传完成(发送方,参数){
var imgDisplay=$get(“imageEmployeeTemp”);
var img=新图像();
img.onload=函数(){
imgDisplay.style.cssText=“高度:100px;宽度:100px”;
imgDisplay.src=img.src;
};
img.src=“/Resources/Images/Employee/”+args.get_fileName();
}
$(文档).ready(函数(){
$('#TxBx_BasicSalary').focusout(函数(){
var EmployeeId=$('Hid#EmpID').val();
如果(EmployeeId==0){
返回;
}
$.ajax({
类型:“POST”,
cache:false,
contentType:“应用程序/json;字符集=utf-8”,
url:“/WebService/IncDedWebService.asmx/getinceed”,
数据:“{”id:“'+EmployeeId+''''}”,
数据类型:“json”,
成功:功能(数据){
var data=$.parseJSON(data.d)
var TotalIncentities=数据[“TotalIncentities”];
var TotalDecredition=数据[“TotalDecredition”];
var BasicSalary=$(“#TxBx_BasicSalary”).val();
var grossalary=parseInt(基本日历)+parseInt(总激励)
$('Ltrl_GSalary').html(Grossalary);
$('Hid#GSalary').val(Grossalary);
$('#Ltrl_NetSalary').html(Grossalary-parseInt(TotalDecredition));
$('Hid#u NetSalary').val(Grossalary-parseInt(TotalDecredition));
},
错误:函数(){alert(“error”);}
});
});
变量id=“#”;
var bool=假;
$(id)。单击(函数(){
隐藏行();
布尔=真;
});
如果(!bool){
隐藏行();
}
函数HideShowRows(){
var BankInfo=$(“#BankInfo”);
var BankAccount=$(“#BankAccount”);
如果($('#输入:选中').val()=='1'){
BankInfo.hide();
BankAccount.hide();
}
否则{
BankInfo.show();
BankAccount.show();
}
}
});

请帮助我做什么。

您可以尝试设置一个标志来停止多个同时发生的ajax请求:

     $(document).ready(function () {
         var inProgress = false;
       $('#TxBx_BasicSalary').focusout(function () {

          if(!inProgress){
            inProgress = true;
            var EmployeeId = $('#Hid_EmpID').val();
            if (EmployeeId == 0) {
                return;
            }
            $.ajax({
                type: "POST",
                cache: false,
                contentType: "application/json; charset=utf-8",
                url: '/WebService/IncDedWebService.asmx/GetInceDed',
                data: '{ "id": "' + EmployeeId + '" }',
                dataType: 'json',
                success: function (data) {
                  inProgress = false;
                  var data = $.parseJSON(data.d)
                  var TotalIncentives = data["TotalIncentives"];
                  var TotalDeduction = data["TotalDeduction"];
                  var BasicSalary = $("#TxBx_BasicSalary").val();
                  var GrossSalary = parseInt(BasicSalary) + parseInt(TotalIncentives)
                  $('#Ltrl_GSalary').html(GrossSalary);
                  $('#Hid_GSalary').val(GrossSalary);  
                  $('#Ltrl_NetSalary').html(GrossSalary - parseInt(TotalDeduction));
                  $('#Hid_NetSalary').val(GrossSalary - parseInt(TotalDeduction));
             },
                 error: function () { alert("error"); }
             });
           }
      });

我在使用ajaxToolkit时遇到了同样的问题:AsyncFileUpload。 css有一个变通方法

-在AsyncFileUpload中应用
CssClass=“asyncupload”


-将class
.asyncupload输入{width:100%!important;}
添加到您的css文件。

您是否尝试过一步一步地调试以找到冻结的位置?能否告诉我调试器在哪一行抛出该错误?只是一个侥幸,难道focusout不会由于哪个脚本达到无响应的状态而进行多个ajax调用吗。尝试注释focusOut函数一次,看看它是否仍然挂在firefox上。或者更好的是,将inProgress设置为等于一个包含最新请求时间的对象和一个计数器,以显示有多少正在进行的请求。每次调用focusout时,该计数器都会被检查为小于4(您的浏览器可以轻松处理),如果是,则运行其余代码(向计数器添加1)。它还将特定请求的时间存储在局部变量中。然后,当它完成时,error和success回调都会从计数器中减去1,并且成功回调只有在其本地时间与最新请求的时间匹配时才会运行。