我的程序员伙伴们,我正在失去理智。我读过很多关于 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");
我已经在最新的 chrome 中测试了性能并且感到震惊!我的方法输了 3-4 次。我的意思是我的函数以 42 毫秒运行,而旧的函数是 12-14 毫秒。我的方法真的有任何价值吗?我的方法是反模式吗?请帮帮我!