我使用以下代码从SQL数据库中检索数据:
var connection = new ActiveXObject("ADODB.Connection");
var connectionstring="Data Source=dbname;Initial Catalog=;User ID=userid;Password=pass;Provider=SQLOLEDB";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
rs.Open("select * from db");
查询本身需要几分钟。如何缓存收到的数据并每天只执行一次查询(或通过用户请求)?
该查询仅适用于Interner Exlorer 11,因此看起来我无法使用Cache。看起来localStorage可行,但我不了解如何在其中存储rs
数据:
localStorage.setItem('data', rs);
答案 0 :(得分:1)
您可以将rcordset转换为javascript数组,如下所示。
var obj=[];
while (rs.EOF != true)
{
var row ={}
row.Property1 = rs("Property1");
//map othe columns
obj.push(row);
rs.MoveNext();
}
您不能将对象直接存储到LocalStorage,因为它只支持字符串,因此您需要在存储之前将其转换为字符串。我还建议您将日期与密钥一起附加,这样您就可以删除任何前一天的数据,如果不存在则创建一个新数据。
localStorage.setItem('data_07_02_2018', JSON.stringify(obj));