javascript - 将系统值传递给 JavaScript 的最佳方式

标签 javascript html language-agnostic generic-programming

将对象和类别 ID 或其他不应呈现给用户的系统变量从服务器传递到浏览器的最有效方法是什么?

假设我有一个项目列表,我可以通过 javascript 对每个项目执行某些操作,例如显示工具提示 html 或通过 ajax 添加到收藏夹,或显示在 map 上。工具提示 html、数据库 ID 或地理位置最好保存在哪里?

我能想到的一些选项是:

  • <script></script> 标记中每个项目的一些字典,
  • 微格式,
  • 内联 xml,
  • rel 属性,
  • 带有特定信息的 css 类名,例如class="lat-12345 uid-45678"
  • 一个 <script></script>,其中包含 html id 字典,将字典与模板中的系统值进行映射,
  • 从数据库生成 JavaScript,并通过 <script src="..."></script> 包含 html id 字典,将字典与模板中的系统值映射,
  • 当我需要更多信息而不仅仅是 id 时,ajax 请求适用于所有情况,
  • 在 html 标签内带有参数的事件处理程序,例如onmouseover="tooltip(this, 123, 'Hello world!')"

附注我更喜欢不引人注目的解决方案,而且加载/执行时间也很重要。

最佳答案

也许我错过了一些东西......为什么不只是 JSON?

如何“发送”它(无论是在初始页面加载为“javascript”还是通过 AJAX 或其他方式)实际上只是一个琐碎的细节,主要取决于数据何时可用。 (JSON 是合法 JavaScript 语法的子集。)

那么这只是正确转换的问题。当然,通过将其推送到 JSON/JS,您可能会导致某些非 JS 客户端不可互操作(如果您考虑到这一点)。如果情况确实如此,为什么不直接使用您放在顶部的任意数量的技术来在服务器端执行转换呢?

您还可以在 HTML 中使用任意属性(HTML5 规范可能包括正式合法化的“data-*”)——虽然技术上不“正确”,但所有主要 Web 浏览器都将接受未知属性,这些属性可以通过DOM API。

关于javascript - 将系统值传递给 JavaScript 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917765/

相关文章:

javascript - 使用 rxjs5 获取 BehaviorSubject 当前值的简单方法

Javascript if else 条件使用大于 >

html - 在内容滚动时保持侧边栏固定在顶部

algorithm - 分而治之问题

math - float 学有问题吗?

javascript - jQuery 日历无法正常工作

foreach 循环中的 JavaScript 拼接函数递减索引

javascript - 使用 jQuery + Javascript 播放带间距的 HTML5 音频元素

css - 在 Angular 2 组件中使用 Jquery ui slider 时闪烁

php - 用户友好,易于内存的优惠券代码