好了,简单的方法来处理这个问题如下:
一旦用户按下登录电子,使用JavaScript,隐藏登录按钮,适当注入一些 ajaxloader gif,比发送的登录凭据的AJAX请求,盐,它,将用户登录,以JSON的形式发布响应,并截取该响应,如果成功 - 重定向,失败 - 打印适当的消息。
一些代码:
登录-handler.php
$user = new user();
if ($user -> login($_POST['uid'], $_POST['password'], $_POST['whatever']){
$response['type'] = 'success';
}
else{
$response['type'] = 'failure';
}
echo json_encode($response);
JS-login.js
$("#login").click(function(){
// verify that user put user name, password and whatever, hide button and show ajax loader
$.get("login-handler.php", {user: user, password: password}, function(data){
if (data.type == "success"){
window.location = "http://example.com/new/location/whatever";
}
else{
//print message
}
}, "JSON");
});
编辑:但我想加入其他人,并考虑使用一个更快/不同的API,因为10秒的加载时间是非常荒谬的,除非它是为了你自己,在这种情况下 - 将自己击倒。
听起来像你需要找出为什么它需要这么长的时间来加载而不是掩盖问题。 – 2012-01-10 22:41:10
嗯'多久'多久?为什么不通过优化脚本来缩短时间? – zerkms 2012-01-10 22:41:15
支票(含盐和所有)不应该花费那么长时间。使用FireBug并查看加载页面需要花费很长时间。 – Biotox 2012-01-10 22:47:31