好了,簡單的方法來處理這個問題如下:
一旦用戶按下登錄電子,使用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