javascript - 在创建时将 JSON 发送到页面的最佳方式

标签 javascript json html

我需要向网页发送一些数据,最好是 json 格式,我想知道哪种方法最好,为什么。总体而言,您与他们有什么好的或坏的经历和惊喜。

  1. <script>var myJson = <? echo json_encode($myVar); ?>;</script>

    优点:json直接在javascript中,会用到。
    不便:<script>在 html/dom 中间是坏的(js 属于 .js 文件)。

  2. <div data-myJson='<? echo json_encode($myVar); ?>'>

    优点:html5 数据很容易处理。
    不方便: dom 中的一堆数据,看起来并不优雅注意:在 my 在这种情况下,我可以忽略“旧”浏览器。

  3. ajax 一切。

    优点:在这种情况下甚至不需要发送 json,因为它 将已经可用(没有页面更改)。
    不方便:不 确实是一个选择,因为我需要重写整个网站。

  4. 不是发送完整的 json,而是将其存储在 session 中并发送一个 key 。

    优点:移动的数据较少
    不方便: 需要跟踪数据/ session 对,我希望我的 session 保持干净整洁。 (即使用户只是在流程结束之前关闭页面 完成)(不会关闭 session )。

  5. Cookie。

    优点:呃……逆邪是好事吗?
    不方便:类似于 session 变量,但不在笼子里。

  6. 将 json 存储在 session 中,并在页面加载时使用 ajax。

    优点:概念上有点优雅。
    不方便:重,因为ajax指令有 要添加到 js 文件,并且必须管理 session 。 (和 净化。如果页面加载没有完成,json 将一直保留到 我清理它或 session 结束)。加上 html header 意味着更多带宽,我们必须等待成功才能使用该对象。

  7. 其他?

编辑:因为似乎有点困惑,选项 3“ajax everything”我的意思是一个页面加载,所有内容由ajax加载,即使您浏览菜单、链接到其他页面、提交表单等。我考虑了一个更传统的导航(服务器作为新页面发送的页面),页面执行 ajax 请求以在服务器上检索一些值(这里是我的 json 对象),作为第 4 点“ session ”,作为发送页面后,主要数据必须保留在服务器上,以便稍后由 ajax 请求获取。我确实为此添加了选项 6。

最佳答案

我毫不犹豫地推荐#1。你想在 javascript 中使用你的数据,对吧? #1 是确保您的数据在页面加载时作为普通旧 javascript 对象存在的最简单和最直接的方法。我一直以这种方式将数据从服务器端传输到浏览器端,而且效果很好。

您可以通过在 ajax 调用中加载数据来更好地分离数据和 UI,但这是一个额外的 http 请求,会减慢您的页面加载速度。

关于javascript - 在创建时将 JSON 发送到页面的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155193/

相关文章:

javascript - 缓存:myscript-1125.js vs myscript.js?1125

ruby-on-rails - Rails to_json 响应将日期时间转换为 unixtimestamp

html - 隐藏后 X 轴不消失,仍然适用于移动 View

html - 在导航菜单中将背景图像添加到列表或 anchor 标记

ios - 从 JSON 中一张一张加载照片

javascript - 我的 CSS 使我的 javascript 下拉菜单滑动效果失败

javascript - 如何使用 Lodash 从数组中删除对象?

javascript - 使用 AngularJS ngModel 和表单验证 $watch 两个元素并在任一输入更改时测试它们是否相等

javascript - 使用 jquery 查找所选菜单选项的索引

json - 使用 Spring 的 @RequestBody 并在之后读取 HttpServletRequest.getInputStream()