natknąłem tej kwestii dzisiaj. Zdałem sobie sprawę, że na jednej z moich dużych list wystąpiło znaczące spowolnienie. Istnieje możliwość wyświetlenia wszystkich, a w tym widoku istnieje formularz w linii do usuwania elementów. jquery.validate.unobtrusive
niszczył tę stronę podczas ładowania. Po usunięciu obciążenie wynosiło tylko 2s. Wiele formularzy nie wymagało walidacji, ale niektóre z nich nadal. W rezultacie, spojrzałem w kodzie pliku i stwierdziliśmy:
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();
}
});
}
zdałem sobie sprawę, że muszę jakoś zmienić tego połączenia, ale wciąż zachowują funkcjonalność. To, co zrobiłem, to zaznaczyć wszystkie moje formularze, że nie chciałem przejść przez tę metodę parse z class="skipValid"
. Następnie w kodzie źródłowym wprowadziłem tę zmianę:
$("form:not(.skipValid)").each(function() {
i miałem najlepsze z obu światów.
Woa! Ciekaw jestem, jaka funkcjonalność ma tysiąc wejść na tej samej stronie? – vtortola
Funkcja żądanego klienta. Chciał być w stanie zbiorczo potwierdzić w dziale administracyjnym. Nie chciał stronicowania i nie chciał Ajax. A więc była to gigantyczna forma. – GraemeMiller
ahh ... szaleni klienci ... – vtortola