如何将localstorage脚本更改为localforage脚本?

时间:2016-10-31 22:39:19

标签: javascript jquery local-storage localforage

我想将此脚本更改为localforage,我尝试将所有关键字localStorage替换为localforage但不起作用。

当此功能仍在使用localStorage时,它运行良好。但是,由于localStorage 5 MB的限制,我将其更改为localforage。

然后我运行代码不起作用但完全没有找到错误控制台。



function tampil_unit(){
  $.ajax({
    url:url+'tampil_unit',
    data: { },
    method: 'POST',
  })
  .done(function(data) {
    var unit = JSON.parse(data);
    localforage.unit = JSON.stringify(unit);

  })
  .fail(function() {

  })
  .always(function() {
    if(localforage.unit){
        var data = JSON.parse(localforage.unit);
        for (var x = 0; x < data.unit.length; x++) {
          $("#id_unit").append("<option value='"+data.unit[x].id_unit+"'>"+data.unit[x].nama_unit+"</option>");
          $("#id_unit_up").append("<option value='"+data.unit[x].id_unit+"'>"+data.unit[x].nama_unit+"</option>");
        }
    }
  });
}


function doShowAll() {
		var key = "";
				var list = "<tr><th align='center'>Tanggal</th><th align='center'>Action</th></tr>\n";
		var i = 0;
		for (i = 0; i <= localforage.length - 1; i++) {
			key = localforage.key(i);
      if(key!='id_sales' && key!='rbm' && key!='unit' ){
        list += "<tr><td align='center'>" + key + "</td><td align='center'><button onclick='kirim_data_offline("+localforage.getItem(key)+")'>Kirim data</button></td></tr>\n";
      }

		}
		document.getElementById('list_offline').innerHTML = list;
}
&#13;
&#13;
&#13;

我的代码中有什么问题,你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

localForage不是localStorage的替代品。它不是同步的,所以你不能简单地用localStorage找到+替换localForage

您也无法访问密钥,因为localForage上的属性(示例中的localForage.unit不起作用)。你需要这样做:

localForage.get('unit')
  .then(function(value) {
    console.log(value);
  });