Tôi đã xem qua vấn đề này ngày hôm nay. Tôi nhận ra rằng có một sự suy giảm đáng kể trên một trong những danh sách lớn của tôi. Có một tùy chọn để xem tất cả và trong chế độ xem đó, có một biểu mẫu trên mỗi dòng để xóa các mục. jquery.validate.unobtrusive
đã hủy trang này khi tải. Khi nó đã được gỡ bỏ, tải chỉ là 2s. Nhiều người trong số các hình thức không cần xác nhận, nhưng một số vẫn làm. Do đó, tôi đã xem mã cho tệp và tìm thấy mã này:
parse: function (selector) {
/// <summary>
/// Parses all the HTML elements in the specified selector. It looks for input elements decorated
/// with the [data-val=true] attribute value and enables validation according to the data-val-*
/// attribute values.
/// </summary>
/// <param name="selector" type="String">Any valid jQuery selector.</param>
$(selector).find(":input[data-val=true]").each(function() {
$jQval.unobtrusive.parseElement(this, true);
});
$("form").each(function() {//THIS IS THE OFFENDING CODE
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
}
Tôi nhận thấy rằng tôi cần phải thay đổi cuộc gọi đó bằng cách nào đó nhưng vẫn giữ lại chức năng. Những gì tôi đã làm cuối cùng là đánh dấu tất cả các hình thức của tôi mà tôi không muốn đi qua phương pháp phân tích cú pháp này với class="skipValid"
. Sau đó, trong mã nguồn, tôi đã thực hiện thay đổi này:
$("form:not(.skipValid)").each(function() {
và tôi có cả hai thế giới tốt nhất.
Nguồn
2013-05-31 20:43:38
Woa! Tôi tò mò, loại chức năng nào có hàng nghìn đầu vào trong cùng một trang? – vtortola
Tính năng yêu cầu của khách hàng. Muốn có thể xác nhận hàng loạt trong phần quản trị viên. Không muốn phân trang và không muốn Ajax. Vì vậy, một hình thức khổng lồ nó được. – GraemeMiller
ahh ... khách hàng điên rồ ... – vtortola