我有一个用于多项选择测试的网络应用程序。测试在平板电脑上完成(iPad / Android平板电脑)。我遇到的问题是测试运行缓慢,因为之前的开发人员进行了ajax调用,调用了测试屏幕的每个部分的数据库(图像,问题,答案集团,场景等)。测试只显示一个在屏幕上和下一个/上一个点击它的问题,并分别获取数据。
额外信息:测试包含40到45个问题,并且所有问题都可以包含图像。
我已经更改了代码,以构建一个包含所有问题所需的图像和信息的对象。
我想知道的是,是否可以将整个对象转换为xml
或json
对象(我已经完成了代码以进行转换)并以某种方式存储{{ AppCache / Manifest中的1}} / xml
对象,以便系统对数据库进行一次调用,在开始测试时获取所有信息,因此初始加载速度很慢,但随后使用缓存对象本文的其余部分使它运行得更快?
如果确实有可能,你能提供一个如何使用它的例子,如果没有,那么下一个最好的事情是什么,因为我真的想提高测试的速度。
也许作为替代方案,你可以创建一个json
文件,然后在本地存储该文件,以便移动网络应用程序可以访问存储在那里的数据吗?因为可能会使用可能超过5mb Cache限制的更大图像。
答案 0 :(得分:0)
我认为您在浏览器中寻找的是SessionStorage
或LocalStorage
。它允许您在浏览器会话期间(直到浏览器关闭)或永久存储数据。
您可以在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编写这个应用程序会很有趣,但你可能不想看完全重写...)