【问题标题】:How to cache ActiveXObject data with javascript?如何使用 javascript 缓存 ActiveXObject 数据?
【发布时间】:2018-07-17 12:05:53
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery sql caching local-storage


    【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 2020-04-21
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多