如何使用javascript缓存ActiveXObject数据?

时间:2018-02-07 09:07:40

标签: javascript jquery sql caching local-storage

我使用以下代码从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);

1 个答案:

答案 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));