作为帮助您继续前进的提示,这里使用 jQuery 是一些代码:
var ajxAutoSaveTimer = null;
function TriggerChanges()
{
if(ajxAutoSaveTimer)
clearTimeout(ajxAutoSaveTimer);
ajxAutoSaveTimer = setTimeout(MakeAutoSave, 10000);
}
function MakeAutoSave()
{
// fix the data that you going to send here.
jQuery.ajax({
url: "PageName.aspx/MethodName",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function(data)
{
// you can make a tiny notification here
return;
}
error: function(responseText, textStatus, XMLHttpRequest) {
return;
}
});
}
jQuery(document).ready(function() {
jQuery(":input:not(*[ExcludeFromNotice])").bind('change', TriggerChanges);
});
现在我在这里做什么。
从这一行开始,我捕获了所有input,它们是用户控件所做的更改。除了我用ExcludeFromNotice 标记的那个之外,因为其中一些我没有赢得成为自动保存过程的一部分。
jQuery(":input:not(*[ExcludeFromNotice])").bind('change', TriggerChanges);
您可以将其设置为属性上的"ExcludeFromNotice=true" 控件。或者,您可以只为您希望成为自动保存通知一部分的控件设置一个类。
现在在TriggerChanges() 上,我要做的是创建一个在 10 秒后触发的时间,用户不会进行其他更改。
剩下的最困难的部分,如果MakeAutoSave(),你需要收集和发布自动保存的数据。
一些额外的页面可以帮助您进行保存数据的 ajax 调用:
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
How to post form data in asp.net using ajax