我想为我的站点实现AutoSave功能。
我的意思是,我希望所有的字段,由用户编辑的整个网站应该是自动保存,没有任何按钮单击。这样用户就可以继续编辑。
网站设计有: CodeIgniter和JQuery。
这个特性,我正在实现如下。
1.在javascript中创建了一个队列数据结构,并将用户所做的所有更改推入其中。因此,这就像一个保存所有用户更改的对象。
2.然后编写一个函数,将此队列的内容保存到数据库中。
function start(){
var changeData = dq.get(); //getting the data from Queue
while(changeData !== undefined){
$.ajax({
type: 'POST',
url: '/ci/ajax/insert/',
data: {changeData},
success: function(data, status, xml){
alert('succefully inserted data -- '+data);
}
});
changeData = dq.get();
}
setTimeout(function(){ start(); }, 5000);
};
start();在这里,我把间隔设置为5秒。
问题是,我在5秒内做了两个或更多的更改,但是,只有第一个更改正在更新。但是,根据我所做的更改,我得到警告2次或更多次。
我哪里出问题了?
还建议我实现自动保存功能的更好方法。
谢谢!
发布于 2013-06-30 18:03:18
应该在setTimeout方法中定义success,因为当第一个请求完成时,如果不等待服务器响应并发送no,则生成第二个请求。对于请求,会增加服务器上的负载。
function start(){
var changeData = dq.get(); //getting the data from Queue
while(changeData !== undefined){
$.ajax({
type: 'POST',
url: '/ci/ajax/insert/',
data: {changeData},
success: function(data, status, xml){
setTimeout(function(){ start(); }, 5000);// defines when first request is accomplished
alert('succefully inserted data -- '+data);
}
});
changeData = dq.get();
}
};
start();https://stackoverflow.com/questions/17392315
复制相似问题