我一遍又一遍地听说"将DOM用作数据库是不好的做法".
虽然我大多同意这种观点,但这个问题更多的是黑白情况.记住jQuery .data()方法和HTML5数据属性规范的最新版本,为方便起见,将一些数据粘贴到DOM中真的很糟糕吗?
例如,我最近通过执行以下操作在一个充满输入的表上实现了"实时"计算功能:
<table>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('table').bind('calculate',function(){
var total = 0;
$(this).find('tr').each(function(){
total += $(this).data('value');
});
// display total
});
$('table input').bind('change keyup',function(){
$(this).closest('tr').data('value',$(this).val());
$(this).closest('table').trigger('calculate');
});
Run Code Online (Sandbox Code Playgroud)
这是一个过于简化的示例,因为我可以跳过调用.data()并直接转到输入值,但让我们想象一个稍微复杂的场景,其中输入以外的元素会影响行值.
在这种情况下使用DOM存储简单数据是错误的吗?