我们的应用程序使用许多配置选项。这些选项需要以用户首选项,站点范围内的首选项等形式反射(reflect)在客户端上。
当前,我们以JSON的形式将服务器端设置传递给客户端,该JSON存储在特定元素的标记中的自定义属性中(不,我们的应用程序当前不担心W3C验证)。然后,我们从custom属性中检索数据,并将其解析为JSON对象,以使用jQuery在脚本中使用。
这样做的一个缺点是在事件处理程序中引用元素上的属性。我知道这是不满意的,因为它可以创建循环引用,并随后导致内存泄漏。我更喜欢使用jQuery的data函数,但是您不能在页面渲染时从服务器端调用它。
其他人在这种情况下会做什么?
最佳答案
以JSON格式返回服务器数据。您可以通过返回JSON header 或简单页面输出和JSON.parse()
来通过AJAX进行此操作。
您可以将JSON数据直接分配给元素的数据。
$('#elementid').data('serverdata', data);
更新
更好地了解了您的情况后,出于以下三个原因,建议您使用
data-
属性。.data
函数。 customAtt="value"
更改为data-customAtt="value"
Here是有关数据属性的更多信息。