我们的应用程序使用许多配置选项。这些选项需要以用户首选项,站点范围内的首选项等形式反射(reflect)在客户端上。

当前,我们以JSON的形式将服务器端设置传递给客户端,该JSON存储在特定元素的标记中的自定义属性中(不,我们的应用程序当前不担心W3C验证)。然后,我们从custom属性中检索数据,并将其解析为JSON对象,以使用jQuery在脚本中使用。

这样做的一个缺点是在事件处理程序中引用元素上的属性。我知道这是不满意的,因为它可以创建循环引用,并随后导致内存泄漏。我更喜欢使用jQuery的data函数,但是您不能在页面渲染时从服务器端调用它。

其他人在这种情况下会做什么?

最佳答案

以JSON格式返回服务器数据。您可以通过返回JSON header 或简单页面输出和JSON.parse()来通过AJAX进行此操作。

您可以将JSON数据直接分配给元素的数据。

$('#elementid').data('serverdata', data);

更新

更好地了解了您的情况后,出于以下三个原因,建议您使用data-属性。
  • 您将具有符合标准的标记。
  • jQuery的最新版本依赖于.data函数。
  • 所做的更改几乎不需要对当前应用程序进行任何修改(将自定义属性的输出方式从customAtt="value"更改为data-customAtt="value"

  • Here是有关数据属性的更多信息。

    10-05 20:52
    查看更多