当用户离线时,如何将xml文件保存到本地存储并更新值?

时间:2019-02-03 18:40:38

标签: javascript html xml-parsing

我正在尝试编写货币转换器。我正在从存储货币和汇率的URL中下载xml文件。我想将货币保存到本地存储中,因此当用户脱机时,他仍然可以进行转换。我在控制台中打印xml文件只是为了检查是否正在获取xml文件。所以我的问题是,如何将货币和汇率存储到本地存储中,以及当用户再次在线时如何更新值? javascript:

function display(e ) {
    if ((e.target !== e.currentTarget) && e.target.id !== "clear" && e.target.id !== "kati") {
        var clickedItem = e.target.id;
        document.getElementById("display").value =  document.getElementById("display").value + clickedItem;
    }
    else  if (e.target.id = "clear" && e.target.id !== "kati") {
        document.getElementById("display").value = null;
    } else if (e.target.id = "kati") {
        var ourRequest = new XMLHttpRequest();
        ourRequest.open('GET', 'https://devweb2018.cis.strath.ac.uk/~aes02112/ecbxml.php');
        ourRequest.onreadystatechange = function () {
            var data = ourRequest.responseText;
            console.log(data);
        };
        ourRequest.send();
    }
    e.stopPropagation();
}

该xml文件的URL显示在代码中。

1 个答案:

答案 0 :(得分:0)

是的,就像克里斯已经说过的那样,您可以使用默认的localStorage:

localStorage.setItem("hello","world");
localStorage.getItem("hello"); //world

例如,您得到回应后

ourRequest.onreadystatechange = function () {
 if (ourRequest.readyState === 4) {
  if (xhr.status == 200){
   if (ourRequest.status == 200){
     var data = ourRequest.responseXML;
     var someTag = data.getElementsByTagName("someTag");
     //something like this
     localStorage.setItem("someTagValue",someTag[0].childNodes[0].nodeValue);
   }
  }    
};