私の仲間のプログラマー、私は正気を失いつつあります。私は JS のパフォーマンスに関する多くの本を読みましたが、そのすべてが、将来の参照と管理のために DOM オブジェクトをキャッシュし、新しい Jquery オブジェクトを作成しない方がよいと言っています。合理的に聞こえます。しかし今、私の信仰は揺らいでいます。私の会社でコード規則を開発しようとしていますが、パフォーマンスの観点からこの問題に対処するつもりでした。次のコードがあります。
$("#registratorType").attr("readonly", "readonly");
$("#registratorType").attr("size", "25");
$("#id").attr("readonly", "readonly");
$("#id").attr("size", "25");
$("#serial").attr("readonly", "readonly");
$("#serial").attr("size", "25");
$("#duration").attr("size", "25");
$("#stoppingDuration").attr("size", "25");
$("#speeddata").removeAttr("disabled");
それがすべてではありませんが、あなたはその考えを持っていると思います。このフォームをすべて取得して、キャッシュされた参照にラップするつもりでした。
var $form = $('#vehicleProfile');
$form.find("#registratorType").attr("readonly", "readonly");
$form.find("#registratorType").attr("size", "25");
$form.find("#id").attr("readonly", "readonly");
$form.find("#id").attr("size", "25");
$form.find("#serial").attr("readonly", "readonly");
$form.find("#serial").attr("size", "25");
$form.find("#duration").attr("size", "25");
$form.find("#stoppingDuration").attr("size", "25");
$form.find("#speeddata").removeAttr("disabled");
最新のクロムでパフォーマンスをテストしたところ、衝撃を受けました! 私のアプローチは3〜4回で負けていました。私の関数は 42 ミリ秒で実行されましたが、古い関数は 12 ~ 14 ミリ秒でした。私の方法には本当に価値がありますか?私のアプローチはアンチパターンですか?お願い助けて!