【问题标题】:How to save click path as JSON?如何将点击路径保存为 JSON?
【发布时间】:2021-12-28 17:51:28
【问题描述】:

假设我有一个用 JavaScript 编写的测验。每个问题有四种不同的可能答案。参与者一个一个点击完成测验,他可以随时取消它。

现在我想保存用户的点击路径,包括各自的时间戳。我的想法是将点击路径记录为 JavaScript 对象,并通过 AJAX 将此对象传输到服务器,并在每次点击后将其保存在 JSON 文件中。这有意义吗?

在我看来,棘手的事情是 (1) 为第二次点击后的每次点击在测验会话(无会话 cookie)中更新正确的对象(JSON 文件中的正确行)和(2 ) 为新的测验会话附加一个新对象,如果可能的话,无需每次都读取和重写整个 JSON 文件。

感谢您的意见和想法。

编辑:我可以控制后端并且我正在使用 PHP。

【问题讨论】:

  • 无需动态更新文件。将数据保存在对象中,然后使用JSON.stringify 将对象转换为 JSON。然后将其发送到服务器进行保存。
  • 但是由于参与者可以随时取消测验,我需要在每次单击后保存对象。
  • 我猜它不需要用户的明确操作来“取消”,然后呢?基本上他们可以随时退出标签或点击后退按钮取消?
  • 阿贾克斯。 ajax 是您向服务器发送数据的方式。
  • @KevinB 哈哈。 [{"You'd": ["hate", "the", "way"], "I": {"work": "then", "since": {"I": "write", "JSON": ["by", "hand"]}}}, "all", "the", "time"]。不过,诚然,如果我在计算上更新JSON,我将始终首先更新JSON.parse()json_decode()。我不会将其编辑为字符串。

标签: javascript php json ajax


【解决方案1】:

现在我想保存用户的点击路径,包括各自的时间戳。我的想法是将点击路径记录为 JavaScript 对象,并通过 AJAX 将此对象传输到服务器,并在每次点击后将其保存在 JSON 文件中。

您可以更简单地在localStorage 中存储JSON(包括时间戳)并在那里更新,而不是通过 Ajax 将对象发送到服务器并将其保存在 .json 文件中。

localStorage API

localStorage 两者兼有:

  • 比将数据保存在对象中更健壮/持久
  • 没有重复向服务器发送 Ajax 数据的复杂性

【讨论】:

  • 那你如何获取服务器上的数据?
  • 但是由于参与者可以随时取消测验,我需要在每次点击后传输数据。
  • @ThreeYearOld 然后这样做。你被困在哪里了?
  • 我想如果参与者只是关闭浏览器,它就不起作用,是吗?
  • 好的。我需要想一想。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 2021-10-21
相关资源
最近更新 更多