脱机移动Web应用程序中使用的XML / JSON对象

时间:2017-07-17 06:57:00

标签: c# json xml asp.net-mvc

我有一个用于多项选择测试的网络应用程序。测试在平板电脑上完成(iPad / Android平板电脑)。我遇到的问题是测试运行缓慢,因为之前的开发人员进行了ajax调用,调用了测试屏幕的每个部分的数据库(图像,问题,答案集团,场景等)。测试只显示一个在屏幕上和下一个/上一个点击它的问题,并分别获取数据。

额外信息:测试包含40到45个问题,并且所有问题都可以包含图像。

我已经更改了代码,以构建一个包含所有问题所需的图像和信息的对象。

我想知道的是,是否可以将整个对象转换为xmljson对象(我已经完成了代码以进行转换)并以某种方式存储{{ AppCache / Manifest中的1}} / xml对象,以便系统对数据库进行一次调用,在开始测试时获取所有信息,因此初始加载速度很慢,但随后使用缓存对象本文的其余部分使它运行得更快?

如果确实有可能,你能提供一个如何使用它的例子,如果没有,那么下一个最好的事情是什么,因为我真的想提高测试的速度。

也许作为替代方案,你可以创建一个json文件,然后在本地存储该文件,以便移动网络应用程序可以访问存储在那里的数据吗?因为可能会使用可能超过5mb Cache限制的更大图像。

2 个答案:

答案 0 :(得分:0)

我认为您在浏览器中寻找的是SessionStorageLocalStorage。它允许您在浏览器会话期间(直到浏览器关闭)或永久存储数据。

您可以在window对象上访问它们,并将它们用作简单的键值存储:

// Save data to sessionStorage
sessionStorage.setItem('key', 'value');

// Get saved data from sessionStorage
var data = sessionStorage.getItem('key');

// Remove saved data from sessionStorage
sessionStorage.removeItem('key');

// Remove all saved data from sessionStorage
sessionStorage.clear();

答案 1 :(得分:0)

如果这已经是一个Ajax应用程序,那么您可以考虑将其放入单页面应用程序中,这样您就不会从服务器执行完整的“新页面”请求,而只会根据需要发出Ajax请求并更新页面。在这种情况下,您从服务器获得的任何数据都可以保存在普通的Javascript变量中。

(使用Saxon-JS编写这个应用程序会很有趣,但你可能不想看完全重写...)