在我的后端我使用的是jquery 1.4.1和最新的UI 1.8rc1。我定义了几个做事情的按钮......一个是使用序列化函数创建一个特定类型的页面调用一个php文件,然后重新加载整个页面。在当地,这总是像一个魅力!但是只要我把它放在我的供应商网络服务器上,它只能在大约5%的时间内运行。下面是代码:
buttons: {
'Seite erstellen': function() {
$.post("webadmin/pages.create.serialize.php",$("#page-form").serialize());
$(this).dialog('close');
location.reload(true);
},
'Abbrechen': function() {
$(this).dialog('close');
}
},
有趣的地方是,当我在location.reload部分之前发出警报时 - 它将始终有效。因此,似乎存在序列化执行但在页面重新加载之前无法完成的计时问题。我知道使用序列化的意义不是必须重新加载页面,但我建立导航等所以我需要重新加载。 (现在考虑一下......我真的可以序列化所有东西......无论如何)有一个简单的解决方案吗?是否有一些像我可以内置的小计时器让它等到序列化完成?这是正常行为吗?
答案 0 :(得分:1)
您需要利用$ .post()方法中的回调:
$.post(
"webadmin/pages.create.serialize.php",
$("#page-form").serialize(),
function(data, textStatus, xhr) {
alert("I'm done loading now!");
}
);
不完全确定回调函数内部的“this”是什么,所以我将把实现作为练习留给读者。 : - )