使用Jquery / JavaScript

时间:2016-12-09 11:15:56

标签: javascript jquery wordpress bulk

我正在制作一个基于WordPress的应用程序,学生可以在他的网络浏览器上进行考试。这些问题将被随机选择并从存储在WordPress CMS中的问题库中提供。

在这方面,以下内容非常重要:

- 每次考试可以有多达100个多项选择题。

- 每个问题都可以有图像,每个选项都可以有相关的图像。

- 由于考试时间限制,每次学生完成问题时我都不能向服务器发送请求。

我的查询是:

如何从服务器发送问题:

- 我应该一次性发送整个问题集,然后让Java脚本解析客户端解析的所有问题和选择

- 例如,客户端应该在每个例如5个问题的块中重复请求来自服务器的问题。如果这是更好的方法,我不知道如何实现这一点。有什么指示吗?请

还是有第三种我不知道的方法。

请告知有关此问题的任何意见和解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:1)

取决于用户的选择,将适当的JSON数据发送到客户端并动态呈现它,但如果您想使用XML,那么我们来谈谈它:

我应该提一下,这种比较实际上是从在JavaScript浏览器中使用它们的角度来看。它不是必须使用数据格式的方式,并且有很多好的解析器会改变细节以使我所说的不太有效。

JSON更紧凑,(在我看来)更具可读性 - 在传输中它可以更快"只是因为传输的数据较少。

在解析中,它取决于您的解析器。将代码(无论是JSON还是XML)转换为数据结构(如地图)的解析器可以受益于XML的严格性(XML Schema很好地消除数据结构的歧义) - 但是在JSON中项目的类型(String /数字/嵌套JSON对象)可以在语法上推断,例如:

myJSON = {"age" : 12,
          "name" : "Danielle"}

解析器不需要足够聪明才能意识到12代表一个数字,(Danielle就像其他任何一个字符串)。所以在javascript中我们可以做到:

anObject = JSON.parse(myJSON);
anObject.age === 12 // True
anObject.name == "Danielle" // True
anObject.age === "12" // False

在XML中,我们必须执行以下操作:

<person>
    <age>12</age>
    <name>Danielle</name>
</person>

(顺便说一句,这说明XML更加冗长;数据传输的关注点)。要使用此数据,我们会通过解析器运行它,然后我们必须调用类似的内容:

myObject = parseThatXMLPlease();
thePeople = myObject.getChildren("person");
thePerson = thePeople[0];
thePerson.getChildren("name")[0].value() == "Danielle" // True
thePerson.getChildren("age")[0].value() == "12" // True

实际上,一个好的解析器可能会为你输入年龄(另一方面,你可能不希望它)。当我们访问这些数据时发生了什么 - 而不是像上面的JSON示例那样进行属性查找 - 我们正在对键名进行地图查找。像这样形成XML可能更直观:

<person name="Danielle" age="12" />

但我们仍然需要进行地图查找才能访问我们的数据:

myObject = parseThatXMLPlease();
age = myObject.getChildren("person")[0].getAttr("age");