1

$.Ready() からすべてのコードを削除したにも関わらず、jquery.validate.unobtrusive.js負荷の高いコードを呼び出しているように見えます。その結果、DOMContentLoaded イベントが発生するまでに 300 ミリ秒のリード タイムが発生します。

かなり大きな DOM がありますが、それほど時間はかからないのではないでしょうか?

4

1 に答える 1

2

私が取り組んでいる製品のいくつかのパフォーマンス ドラゴンに取り組んでいる間、DOMContentLoaded イベントが IE 9 で 700 ミリ秒かかっているように見えました (かなり大きな DOM があり、これも取り組むリストに含まれています)。

すべての OnReady コードを無効にした後、絞り込みました

parse(selector)jquery.validate.unobtrusive.js

見つけた後:

$(selector).find(":input[data-val=true]").each(function () {...}Find() メソッドのセレクターの構造がすぐにわかりました。これはシズル エンジンに入り、Document.QuerySelectorAll().

-- @CharlesC からのコメントに従って編集 --

セレクターのマイナーチェンジ:

$(selector).find("input, select, textarea").filter("[data-val=true]")IE 内でパフォーマンスが 300 ミリ秒向上しました。

于 2012-08-07T17:25:36.497 に答える