我正在尝试创建一个记笔记网络应用程序,它将使用HTML5本地存储简单地存储笔记客户端。我认为JSON是这样做的方法,但不确定如何去做。
我有一个简单的表单,其中包含Title和textarea。有没有办法可以提交表格并存储用几个“注释”输入的详细信息然后将它们列回来?
我是Javascript和JSON的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
有很多种方法可以使用json。
1>你可以在HTML页面上创建一个功能并调用ajax&发布数据。 在这里你必须使用$(“#txtboxid”)。val()。获得价值并发布。
2 - ;使用敲出js绑定两个方法。并调用ajax。
这里是调用Web应用程序的简单代码。使用ajax调用。
var params = { "clientID": $("#txtboxid") };
$.ajax({
type: "POST",
url: "http:localhost/Services/LogisticsAppSuite.svc/Json/GetAllLevelSubClients",
contentType: 'application/json',
data: JSON.stringify(params),
dataType: 'json',
async: false,
cache: false,
success: function (response) {
},
error: function (ErrorResponse) {
}
答案 1 :(得分:0)
我编写了一个与实体框架类似的库。我稍后会把它here,你可以关注我或者联系我以获取源代码。然后你可以编写像以下的js代码:
var DemoDbContext = function(){ // define your db
nova.data.DbContext.call(this);
this.notes=new nova.data.Repository(...); // define your table
}
//todo: make DemoDbContext implement nova.data.DbContext
var Notes = function(){
this.id=0; this.name="";
}
//todo: make Note implement nova.data.Entity
如何查询数据?
var notes = new DemoDbContext().notes.toArray(function(data){});
如何向db添加注释?
var db = new DemoDbContext();
db.notes.add(new Note(...));
db.saveChanges(callback);
答案 2 :(得分:0)
根据您要存储的信息的复杂程度,您可能不需要JSON。
您可以使用HTML5中的setItem()
localStorage
方法在客户端保存键/值对。您只能使用此方法存储字符串值,但如果您的注释没有太复杂的结构,这可能是最简单的方法。假设这是您使用的一些HTML:
<input type="text" id="title"></input>
<textarea id="notes"></textarea>
您可以使用这个简单的Javascript代码来存储信息:
// on trigger (e.g. clicking a save button, or pressing a key)
localStorage.setItem('title', document.getElementById('title').value);
localStorage.setItem('textarea', document.getElementById('notes').value);
您可以使用localStorage.getItem()
来检索值。
Here is a simple JSFiddle我创建的目的是向您展示方法的工作原理(尽管不使用与上面完全相同的代码;这个代码依赖于keyup事件)。
我可以看到,您可能想要使用JSON的唯一原因是,如果您需要一个深度适合您的笔记的结构。例如,您可能希望附加包含其写入日期等信息的注释,并将它们放在如下结构中:
{
'title': {
'text':
'date':
}
'notes': {
'text':
'date':
}
}
那将是JSON。但请记住,localStorage.setItem()
方法只接受字符串值,您需要将对象转换为字符串才能执行该操作,然后在使用localStorage.getItem()
检索时将其转换回来。方法JSON.stringify
将执行对象到字符串的转换,JSON.parse
将执行相反的操作。但正如我所说,这种转换意味着额外的代码,只有你的笔记需要那么复杂才真的值得。