在客户端将服务器端变量传递给JavaScript的最佳方法是什么?

ste*_*e_c 8 javascript

我们的应用程序使用了很多配置选项.这些选项需要以用户首选项,站点范围首选项等形式反映在客户端.

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

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

在这种情况下,其他人都做了什么?

Jos*_*ell 8

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

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

$('#elementid').data('serverdata', data);
Run Code Online (Sandbox Code Playgroud)

更新

在更好地了解您的情况之后,我建议您使用这些data-属性有三个原因.

  1. 您将拥有符合标准的标记.
  2. 最新版本的jQuery依赖于这些.data功能.
  3. 此更改将需要对您当前的应用程序进行少量修改(更改自定义属性的输出customAtt="value" 方式) data-customAtt="value"

以下是有关数据属性的更多信息.