mi sono imbattuto in questo problema oggi. Mi sono reso conto che c'era un rallentamento significativo in una delle mie grandi liste. C'è un'opzione per visualizzare tutto, e in quella vista c'è un modulo per riga per l'eliminazione di elementi. jquery.validate.unobtrusive
stava distruggendo questa pagina al caricamento. Quando è stato rimosso, il carico era solo di 2 secondi. Molte delle forme non avevano bisogno di validazione, ma alcune lo facevano ancora. Di conseguenza, ho guardato nel codice per il file e trovato questo:
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();
}
});
}
mi sono reso conto che avrei avuto bisogno di modificare in qualche modo quella chiamata, ma conservano ancora la funzionalità. Quello che ho finito è stato contrassegnare tutte le mie forme che non volevo passare attraverso questo metodo di analisi con class="skipValid"
. Quindi, nel codice sorgente, ho apportato questa modifica:
$("form:not(.skipValid)").each(function() {
e ho avuto il meglio di entrambi i mondi.
fonte
2013-05-31 20:43:38
Woa! Sono curioso, che tipo di funzionalità ha mille input nella stessa pagina? – vtortola
Richiesta di funzionalità client. Volevo poter confermare in blocco in una sezione di amministrazione. Non volevo cercapersone e non volevo Ajax. Quindi era una forma gigantesca. – GraemeMiller
ahh ... clienti pazzi ... – vtortola