如何将点击路径保存为 JSON?

Posted

技术标签:

【中文标题】如何将点击路径保存为 JSON?【英文标题】:How to save click path as 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()。我不会将其编辑为字符串。 【参考方案1】:

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

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

localStorage API

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

localStorage 两者兼有:

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

【讨论】:

那你如何获取服务器上的数据? 但是由于参与者可以随时取消测验,我需要在每次点击后传输数据。 @ThreeYearOld 然后这样做。你被困在哪里了? 我想如果参与者只是关闭浏览器,它就不起作用,是吗? 好的。我需要想一想。谢谢!

以上是关于如何将点击路径保存为 JSON?的主要内容,如果未能解决你的问题,请参考以下文章

vscode:如何在保存less文件时,自动生成对应的css文件,并指定css文件的保存路径

sh 将stdin转换为其他语言并将其保存为输出路径为.json文件

如何将word,excel,powerpoint等转换成html或pdf

如何使用 Spark 加载 JSON(保存在 csv 中的路径)?

如何将arcgis的mxd文档存储为相对路径

win10安装软件怎么设置路径