如何让网络应用程序保留信息?
How to make a web app retain information?
好的...所以用户在日志字段中输入信息并点击提交,系统会根据他们提交的信息调用一个函数,我将其称为 changeTextComment()。当信息被格式化并放置在提示中时,该函数调用另一个函数等,就像在 Facebook 评论中一样。
我需要保存此信息,以便以后可以在本地存储中调用,使应用程序不会在我每次重新启动时刷新。所以...
<script>
function appCache() {
// Check browser support
// this is experimental for local storage...
more here: http://www.w3schools.com/html/html5_webstorage.asp
if (typeof(Storage) != "undefined") {
localStorage.setItem(para);
// Retrieve
document.getElementById("journal").innerHTML = localStorage.getItem(para);
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
};
</script>
所以看看 appCache 函数,它似乎可以工作,但我需要确定将存储然后检索的关键变量是什么。
我认为这是变量 userInput,因为每当用户点击 'add to journal' 按钮时,此变量用于存储用户输入,然后放入 changeTextComment() 函数。
我想知道这是否是处理这整件事的最简单方法...我还不了解数据库,但想知道这样做是否更容易学习。
在这种情况下,我会将函数 Appcache() 添加到函数 changeText() 中,以便它缓存变量,然后我将如何设置它,然后将变量的缓存信息的值提供给 changeText( ) 在启动应用程序时?
每份投稿都会有一个独特的价值。
这里是ChangeTextComment()函数...还在整理如何在css中使用类来简化这些函数:
function changeTextComment(){
// to be modified from the above to change the location of the dump
var userInput = document.getElementById('userInput').value;
// get the input from the user
var panel = document.createElement("div"); // create a parent divider for everything
// assignment of attributes
panel.setAttribute("class","panel panel-default panel-body");
panel.setAttribute("id","panelBody");
var para = document.createElement("P");
var t = document.createTextNode(userInput);
para.appendChild(t);
// add comment area
var c = document.createElement("INPUT");
c.setAttribute("type", "text");
c.setAttribute("id", "comment");
c.setAttribute("placeholder", "comment here");
c.setAttribute("class", "form-control input-lg");
// add comment button attempt -- success <> now try to put it in the textarea
var d = document.createElement("INPUT");
d.setAttribute("type","button");
d.setAttribute("class","btn btn-info active pull-right");
d.setAttribute("onclick","commentThis()");
d.setAttribute("value","Add Comment");
panel.appendChild(para); // this is where a comments piece would go
// place the item
var destination = document.getElementById("journal")
//destination.insertBefore(Commentaryarea, destination.firstChild);
//destination.insertBefore(panel, destination.firstChild);
destination.insertBefore(panel, destination.firstChild);
panel.appendChild(c);
panel.appendChild(d);
document.getElementById("userInput").value = "";
document.getElementById("userInput").focus();}
</script>
<script>
function setText(a){
document.getElementById("userInput").value = a
document.getElementById("userInput").focus();
}
</script>
当您说 "stored locally" 时,您的意思是存储在访问者浏览器中,即只有他们自己能够看到和检索它吗?或者您是否希望其他用户能够看到数据,and/or 评论者稍后从其他位置登录时能够看到它?
如果是后者,那么您需要将其存储在服务器端,为此您将需要一个数据库。如果您只需要存储日记条目,那么 mongoDB 很容易用 javascript 设置,但是如果您有很多关系(日记条目与用户相关联,对条目的评论与用户相关联)和条目等),那么 SQL 数据库可能更适合您。
好的...所以用户在日志字段中输入信息并点击提交,系统会根据他们提交的信息调用一个函数,我将其称为 changeTextComment()。当信息被格式化并放置在提示中时,该函数调用另一个函数等,就像在 Facebook 评论中一样。
我需要保存此信息,以便以后可以在本地存储中调用,使应用程序不会在我每次重新启动时刷新。所以...
<script>
function appCache() {
// Check browser support
// this is experimental for local storage...
more here: http://www.w3schools.com/html/html5_webstorage.asp
if (typeof(Storage) != "undefined") {
localStorage.setItem(para);
// Retrieve
document.getElementById("journal").innerHTML = localStorage.getItem(para);
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
};
</script>
所以看看 appCache 函数,它似乎可以工作,但我需要确定将存储然后检索的关键变量是什么。
我认为这是变量 userInput,因为每当用户点击 'add to journal' 按钮时,此变量用于存储用户输入,然后放入 changeTextComment() 函数。
我想知道这是否是处理这整件事的最简单方法...我还不了解数据库,但想知道这样做是否更容易学习。
在这种情况下,我会将函数 Appcache() 添加到函数 changeText() 中,以便它缓存变量,然后我将如何设置它,然后将变量的缓存信息的值提供给 changeText( ) 在启动应用程序时?
每份投稿都会有一个独特的价值。
这里是ChangeTextComment()函数...还在整理如何在css中使用类来简化这些函数:
function changeTextComment(){
// to be modified from the above to change the location of the dump
var userInput = document.getElementById('userInput').value;
// get the input from the user
var panel = document.createElement("div"); // create a parent divider for everything
// assignment of attributes
panel.setAttribute("class","panel panel-default panel-body");
panel.setAttribute("id","panelBody");
var para = document.createElement("P");
var t = document.createTextNode(userInput);
para.appendChild(t);
// add comment area
var c = document.createElement("INPUT");
c.setAttribute("type", "text");
c.setAttribute("id", "comment");
c.setAttribute("placeholder", "comment here");
c.setAttribute("class", "form-control input-lg");
// add comment button attempt -- success <> now try to put it in the textarea
var d = document.createElement("INPUT");
d.setAttribute("type","button");
d.setAttribute("class","btn btn-info active pull-right");
d.setAttribute("onclick","commentThis()");
d.setAttribute("value","Add Comment");
panel.appendChild(para); // this is where a comments piece would go
// place the item
var destination = document.getElementById("journal")
//destination.insertBefore(Commentaryarea, destination.firstChild);
//destination.insertBefore(panel, destination.firstChild);
destination.insertBefore(panel, destination.firstChild);
panel.appendChild(c);
panel.appendChild(d);
document.getElementById("userInput").value = "";
document.getElementById("userInput").focus();}
</script>
<script>
function setText(a){
document.getElementById("userInput").value = a
document.getElementById("userInput").focus();
}
</script>
当您说 "stored locally" 时,您的意思是存储在访问者浏览器中,即只有他们自己能够看到和检索它吗?或者您是否希望其他用户能够看到数据,and/or 评论者稍后从其他位置登录时能够看到它?
如果是后者,那么您需要将其存储在服务器端,为此您将需要一个数据库。如果您只需要存储日记条目,那么 mongoDB 很容易用 javascript 设置,但是如果您有很多关系(日记条目与用户相关联,对条目的评论与用户相关联)和条目等),那么 SQL 数据库可能更适合您。