2012-01-11 89 views
1

我想实现完全透明的自动保存系统为登录用户,但卡住发送数据到浏览器关闭服务器。我可以绑定一些函数来卸载事件,但我无法发送任何数据到服务器(使用jQuery/Ajax)。发送数据到服务器在浏览器关闭

当用户关闭浏览器时,是否可以向服务器发送数据?

P.S.鉴于即使GMail不会自动保存草稿,但警告可能的数据丢失,认为任务相当复杂......

+0

您可以在用户输入时自动保存文档。就像在谷歌文档。 – 2012-01-11 07:29:42

回答

2

将您的AJAX调用设置为同步。异步调用将使浏览器在操作完成之前继续。

$.ajaxSetup({ async : false }) 

请注意跨域和JSONP调用不支持同步调用$.ajax

2
$(window).unload(function() { 
     $.ajax({ 
     url: yourUrl, 
     type: "POST", 
     data: "value1=value", 
     cache: true, 
     success: function(response){ 

     } 
     }); 
    }); 

你也喜欢“值1 =值&值2 =价值”和{yourUrl}数据PARAMS传递多个数据相对或绝对网址

+0

你知道,即使浏览器正在关闭,这也可以工作吗? – jfriend00 2012-01-11 07:20:22

+0

似乎你必须忘记onunload事件,如果你想创建trully跨浏览器的应用程序,因为Opera。伤心(( – 2012-01-11 07:57:39

相关问题