我有一个ASP.NET MVC页面有JQuery可编辑数据表,它有14列。 我有一个按钮(Apply No Findings)来执行客户端计算,并适用于该表中的所有行。如何防止在浏览器中“停止运行此脚本”?
当我们点击这个按钮,每4行应用计算后,它显示这个“停止运行脚本”消息。
我验证了设置。在Internet选项中,高级选项卡“禁用脚本调试(Internet Explorer)”选项为选中。并且“显示关于脚本错误的通知”未被选中。
我正在使用Internet Explorer 8.我现在不会发生在IE9上。但这是服务器,我们无法升级到IE9。
我做了研究,并尝试了这两个选项,没有任何工作。
实施例(1): http://www.codeproject.com/Tips/406739/Preventing-Stop-running-this-script-in-Browsers
人有此ISSE和任何建议的高度赞赏。
这是投掷脚本消息实际代码:
for(i < iTotalRecords;i++)
{
var row = oTableAuditLines.fnGetData(i);
oTableAuditLines.fnUpdate("NF",i,1);
UndoHCPCS(row,i);
UndoHCPCSModCodes(row,i);
UndoLineUnitCount(row,i);
oTableAuditLines.fnUpdate("", i, 6); //Reset Denial Reason Code
UndoNonCoveredCharges(row,i);
CalculateAmountPaidAtLine(row,i);
CalculateEstimatedRecoveryAmountAtLine(row,i);
}
UpdateSummaryLine();
UpdateSummaryLineReasonCode();
通过实施例(2)中提到的示例代码,我改变了代码如下和我仍然得到脚本消息:
//这个函数是为了避免脚本运行消息
RepeatingOperation = function(op, yieldEveryIteration)
{
var count = 0;
var instance = this;
this.step = function(args)
{
if (++count >= yieldEveryIteration)
{
count = 0;
setTimeout(function() { op(args); }, 1, [])
return;
}
op(args);
};
};
function ApplyNoFindings()
{
var i = 0;
var ro = new RepeatingOperation(function()
{
var row = oTableAuditLines.fnGetData(i);
oTableAuditLines.fnUpdate("NF",i,1);
UndoHCPCS(row,i);
UndoHCPCSModCodes(row,i);
UndoLineUnitCount(row,i);
oTableAuditLines.fnUpdate("", i, 6); //Reset Denial Reason Code
UndoNonCoveredCharges(row,i);
CalculateAmountPaidAtLine(row,i);
CalculateEstimatedRecoveryAmountAtLine(row,i);
if (++i < iTotalRecords)
{
ro.step();
}
else
{
UpdateSummaryLine();
UpdateSummaryLineReasonCode();
}
}, 100);
ro.step();
}
我在这里做错了什么?
你不应该看看不显示慢代码警告消息,你应该看看优化你的代码。 –
'“我在这里做错了什么?”“......你正在使用ASP.Net,呃!?不,但严重的是,罗里是正确的。你的数据表代码已经做得很多了。 ASP MVC的主要功能之一是让服务器通过C#或甚至XAML处理“计算”并编写HTML以在视图中呈现。你有没有做过电台演练?它为您提供了一个很好的想法,即如何处理更多的服务器端,并且只发送直接的HTML到您的“表”,从而减少客户端的混淆,并减少客户端错误的机会。 – SpYk3HH
我添加了javascript标记并更新了标题以更相关。希望你对此好。 –