javascript - Internet Explorer 可能运行缓慢 : change of logic to be done

标签 javascript jquery performance internet-explorer

TableHandler.prototype.IsAlreadySelected = function(dataToCheck) 
{
    var _this = this;

    if (_this.NewTemplateUsageSelected.length > 0) 
    {
        var len = _this.NewTemplateUsageSelected.length;
        for (var i = 0; i < len; i++) 
        {
            var an = _this.NewTemplateUsageSelected[i];
            var isTemplateUsageDataDuplicate=false; 
            var isNonApplicableCGDataDuplicate=false; 
            if ((an.CustomerName == dataToCheck.CustomerName) &&
                (an.ProgramName == dataToCheck.ProgramName) &&
                (an.WorkpackageName == dataToCheck.WorkpackageName) &&
                (an.ActivityName == dataToCheck.ActivityName) &&
                (an.SelectedWorkFlowType == dataToCheck.SelectedWorkFlowType) &&
                (an.SelectedWorkFlowCategory == dataToCheck.SelectedWorkFlowCategory) &&
                (an.ReWorkflow== dataToCheck.ReWorkflow) &&
                (an.AllowCheckGroupSelection == dataToCheck.AllowCheckGroupSelection) &&
                (an.InitiatorGroupSelection == dataToCheck.InitiatorGroupSelection) &&
                (an.R1GroupSelection == dataToCheck.R1GroupSelection) &&
                (an.R2GroupSelection == dataToCheck.R2GroupSelection) &&
                (an.R3GroupSelection == dataToCheck.R3GroupSelection) &&
                (an.R4GroupSelection == dataToCheck.R4GroupSelection) &&    
                (an.InitiatorMinReworkEffort == dataToCheck.InitiatorMinReworkEffort) &&
                (an.R1MinReworkEffort == dataToCheck.R1MinReworkEffort) &&
                (an.R2MinReworkEffort == dataToCheck.R2MinReworkEffort) &&
                (an.R3MinReworkEffort == dataToCheck.R3MinReworkEffort) &&
                (an.R4MinReworkEffort == dataToCheck.R4MinReworkEffort) &&                               
                (an.AllowFileAttachment == dataToCheck.AllowFileAttachment) &&
                (an.QualityReviewer== dataToCheck.QualityReviewer) &&
                (an.AllowLiabiltySelection == dataToCheck.AllowLiabiltySelection)&&
                (an.SetToInactive == dataToCheck.SetToInactive)&&
                (an.NonApplicabilityCheckGroupAllowed == dataToCheck.NonApplicabilityCheckGroupAllowed))
                    {
                    istemplateusagedataduplicate=true;
                    }  

                var checkgroupslendataToCheck=dataToCheck.NonApplicableCheckGroupList.length;               
              var nalen=an.NonApplicableCheckGroupList.length;
              if(checkgroupslendataToCheck  == nalen )  
              {
        for (var i = 0 ;i < checkgroupslendataToCheck ; i++)
               {

               var naDatatocheck= dataToCheck.NonApplicableCheckGroupList[i];
               var naData=an.NonApplicableCheckGroupList[i];
               if(            
                                  ( naDatatocheck.INonApplicability == naData.INonApplicability )&&
                                  ( naDatatocheck.R1NonApplicability == naData.R1NonApplicability )&&
                                  ( naDatatocheck.R2NonApplicability == naData.R2NonApplicability) &&
                                  ( naDatatocheck.R3NonApplicability == naData.R3NonApplicability )&&
                                  ( naDatatocheck.R4NonApplicability == naData.R4NonApplicability))
                                                                   isNonApplicableCGDataDuplicate=true;
                                   else
                                  {
                                   isNonApplicableCGDataDuplicate=false;
                                   break;
                                  }

                   }
                   if(isNonApplicableCGDataDuplicate==true && istemplateusagedataduplicate==true)
                   return true;

               } 
               }
               }
               };   

上述代码导致错误 Internet 可能运行缓慢。当我寻找解决方案时,我得到了诸如更改注册表和IE版本、将代码移至cdebehind、使用插件等解决方案。这在我们的项目中是不可行的。所以我必须改变上面的逻辑。javascript或jquery中的任何内置函数我都可以用它来露营两个嵌套列表。

最佳答案

内层循环需要使用不同的变量作为其计数器,否则会使外层循环无限循环。目前您正在使用 i 来执行两个循环。

关于javascript - Internet Explorer 可能运行缓慢 : change of logic to be done,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14744999/

相关文章:

javascript - datetimepicker 中时区的用途是什么

javascript - Angular 2 仅从 root/app 文件夹加载组件

javascript - 如何用 jquery 或替代方法隐藏一个 div?

javascript - 如何从 JS 数组创建 JS 对象?

java - 调用链函数会产生开销吗?

python - 在优化的同时保持代码可读性

java - 性能:实用程序类与 CDI bean

javascript - 在 JS Web 应用程序中,如何确保拥有访问 token 的恶意用户无法刷新它?

javascript - 使用 AES、Crypto.js 和 .NET 对 Websockets 聊天消息进行加密

javascript - 视频 : play loop video without re-load