在页面之间保留 JavaScript 值

Persist JavaScript values between pages

本文关键字:JavaScript 保留 之间      更新时间:2023-09-26

我正在尝试使用HTML和JavaScript在网页上创建一个测验。 每个问题(有 4 个选项可供选择)都是一个单独的 html 文件,但使用相同的 JavaScript 文件来评估输入的选择是对还是错。

但是,我正在努力找到一种方法来跟踪用户提供的正确答案数量以计算他/她的分数。

有没有一种方法可以在JavaScript中创建静态或类似静态的变量?涉及 cookie 的解决方案也受到赞赏。

一种可能的解决方案是将问题文件中的 HTML 加载到父页面中,但将整个测验放在该页面上。 这样,您仍然可以灵活地为每个问题设置不同的页面,但对于浏览器来说,它们都是一个页面。 此外,在Javascript中创建或跟踪的任何变量将在整个测验中持续存在。

使用Jquery的.load函数,这很容易做到。您在页面中间有一个div,它从您要导航到的任何HTML页面加载其内容。

请记住,对我来说,进入Javascript并更改正确答案的数量非常容易。 实际上,任何客户端解决方案都存在该问题。 如果这不仅仅是为了好玩,而且准确性很重要,您可能希望在每个问题之后将结果发送回您的服务器。 这样,无论您如何实施测验,结果都会保留在您的最后。

看看 http://www.electrictoolbox.com/jquery-cookies/这使您可以轻松设置和读取 Cookie。

您可以将数据保存在 cookie 中。 但是,用户可以更改cookie并产生更好的结果。在这种情况下,使用会话是更好的选择。因为无论您存储在客户端中的任何内容都是不安全的。

但是,最好使用 xhr 以 json 格式获取问题并将其显示在浏览器中并将跟踪保存在内存中

如果你正在开发一个HTML5应用程序,你可能希望研究DOM存储设施,如localStoragesessionStorage https://developer.mozilla.org/en-US/docs/DOM/Storage:

以下是一些有用的资源/信息:

http://ejohn.org/blog/dom-storage/

http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/

http://msdn.microsoft.com/en-us/library/cc197062(v=vs.85).aspx

这些天,我会专注于使其成为单页应用程序,而不是依赖页面加载。这不仅具有解决问题的优势,还意味着为用户提供响应更快、更快的体验。

如果您必须使用页面过渡,并且您乐于仅使用现代浏览器,请查看 localStorage。比 cookie 更容易使用和灵活 - 它就像序列化的 JavaSCript 对象一样工作。