Tôi có trang ASP.NET MVC có Chỉnh sửa có thể chỉnh sửa JQuery có 14 cột. Tôi có một nút (Áp dụng Không có Kết quả) để thực hiện các tính toán phía khách hàng snd áp dụng cho tất cả các Hàng trong bảng đó.Làm cách nào để ngăn chặn "Dừng chạy tập lệnh này" trong trình duyệt?
Khi chúng tôi nhấp vào nút này, sau khi áp dụng tính toán cho mỗi 4 Hàng, nó sẽ hiển thị thông báo "Dừng chạy tập lệnh" này.
Tôi đã xác minh cài đặt. Trong Tùy chọn Internet, tab Nâng cao, "Tùy chọn Tắt gỡ lỗi Script (Internet Explorer)" được chọn. Và "Hiển thị thông báo về lỗi tập lệnh" được bỏ chọn.
Tôi đang sử dụng Internet Explorer 8. Hiện tại, điều này không xảy ra trên IE9. Nhưng đây là máy chủ, chúng tôi không thể nâng cấp lên IE9.
Tôi đã nghiên cứu và thử hai tùy chọn này và không có gì hiệu quả.
Ví dụ (1): http://www.codeproject.com/Tips/406739/Preventing-Stop-running-this-script-in-Browsers
Bất cứ ai cũng có Isse này và bất cứ đề nghị được đánh giá cao.
Đây là mã thực tế mà là ném nhắn Script:
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();
Bằng cách giới thiệu mẫu mã trong ví dụ (2), tôi đã thay đổi mã như dưới đây và tôi vẫn nhận được thông báo Script:
// chức năng này là để tránh Script Chạy nhắn
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();
}
Tôi đang làm gì sai ở đây?
Bạn không nên xem xét không hiển thị thông báo cảnh báo mã chậm, bạn nên xem xét tối ưu hóa mã của mình. –
'" Tôi đang làm gì sai ở đây? "... ... Bạn đang sử dụng ASP.Net, duh !? Không, nhưng nghiêm túc, Rory là chính xác. Mã bảng dữ liệu của bạn đã làm rất nhiều. Một trong những quyền hạn chính của ASP MVC là khả năng để cho máy chủ, thông qua C# hoặc thậm chí XAML, xử lý "tính toán" và viết HTML được trình bày trong khung nhìn. Bạn đã bao giờ thực hiện hướng dẫn Radio chưa? Nó cung cấp cho bạn một ý tưởng tốt về cách xử lý nhiều hơn về phía máy chủ này và không gửi gì ngoài HTML thẳng tới "bảng" của bạn, do đó tạo ra ít khách hàng nhầm lẫn hơn và gây ít cơ hội hơn cho các lỗi phía máy khách. – SpYk3HH
Tôi đã thêm thẻ javascript và cập nhật tiêu đề để phù hợp hơn. Hy vọng bạn ổn với điều này. –