2016-10-23 208 views
-1

我有一个小型网页应用,可根据用户输入计算距离和时间。它工作正常,但是,我的手机浏览器(Chrome)坚持刷新我的标签关闭铬约15分钟后。当发生这种情况时,所有页面数据都会丢失,因此用户不再拥有重要的信息/数据。有没有办法解决?这里是我的代码页面刷新后保留数据

的Javascript

function myFunction() { 

function converToMinutes(s) { 
    var c = s.split(':'); 
    return parseInt(c[0]) * 60 + parseInt(c[1]); 
} 

function parseTime(s) { 
    var seconds = parseInt(s) % 60; 
    return Math.floor(parseInt(s)/60) + ":" + ((seconds < 10)?"0"+seconds:seconds); 
} 


var endTime = document.getElementById("etime").value; 
var startTime = converToMinutes(document.getElementById("stime").value); 
var converted = parseTime(startTime - endTime); 


document.getElementById('finishtime').innerHTML = "You will finish your break at " + converted; 

} 

HTML

<p>Please enter minutes</p> 
<input type="text" id="etime"> 
<br> 
<p>Please enter time in 24 hour format (eg. 15:00)</p> 
<input type="text" id="stime"> 
<br> 
<br> 
<button onclick="myFunction()">Calculate</button> 

<p id="finishtime"> 

回答

1

您可以将其存储在HTML5的Web存储,只包括下面的代码在您的JS代码

if (typeof(Storage) !== "undefined") { 
localStorage.setItem("convertedTime", converted); 
} else { 
// Sorry! No Web Storage support 
} 

,每当你想要获取这些存储的数据,你可以得到它正如下面

var convertedTime=localStorage.getItem("convertedTime"); 

然后,你可以在重新加载页面后使用它在任何地方。

+0

谢谢,这个效果很好 – Hsan

+0

有没有什么办法可以在我的输入中加载存储的日期 – Hsan

+0

如果它对你有帮助,请做upvote。 –

-1

你可以用客户方存储技术类似的localStorage来实现这一点。 Localstorage允许您存储域特定的键值对数据offlie.Although可以序列化对象并将它们作为字符串放置在特定键上。你甚至可以使用IndexDB。客户端数据库类似于sql。 使用其中的任何一项,您都可以确保没有数据丢失。直到你清除它们或清除它们。

window.localStorage.setItem(key,value) -> will set a key value pair 
window.localStorage.getItem(key,value) -> will get a key value pair 

更多

HTML 5 rocks client side storage

visit here for indexdb Html5rocks