2

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

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

是否有在 JavaScript 中创建静态或类静态变量的方法?涉及 cookie 的解决方案也值得赞赏。

4

5 回答 5

5

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

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

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

于 2012-08-14T14:18:57.787 回答
2

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

于 2012-08-14T14:15:54.193 回答
1

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

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

于 2012-08-14T14:20:09.987 回答
0

这些天来,我将专注于制作一个单页应用程序,而不是依赖页面加载。这不仅具有解决您的问题的优势,还意味着为用户提供更灵敏、更快的体验。

如果您必须使用页面转换,并且您很乐意只使用现代浏览器,请查看localStorage。比 cookie 更容易使用和更灵活——它就像一个序列化的 JavaSCript 对象一样工作。

于 2012-08-14T14:22:42.853 回答
0

localStorage如果您正在开发 HTML5 应用程序,您可能希望研究 DOM 存储设施,例如sessionStoragehttps ://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

于 2012-08-14T14:20:48.950 回答