如果我有一個函數檢查數據庫以查看用戶名是否可用,並且我在jquery keydown事件上對該函數執行了Ajax調用,那麼是否有太多的數據庫命中?每次用戶點擊一把鑰匙,我都會接到電話。有更好的方法嗎?用於檢查用戶名可用性的KeyDown上的Jquery Ajax。數據庫命中太多?
謝謝
如果我有一個函數檢查數據庫以查看用戶名是否可用,並且我在jquery keydown事件上對該函數執行了Ajax調用,那麼是否有太多的數據庫命中?每次用戶點擊一把鑰匙,我都會接到電話。有更好的方法嗎?用於檢查用戶名可用性的KeyDown上的Jquery Ajax。數據庫命中太多?
謝謝
我通常會在以下各種網站中找到這種實現方式。
在這兩種情況下,總是建議執行服務器端檢查,然後顯示錯誤(如果有)作爲響應。
使用setTimeOut()
在最後一次關機後1秒後運行它。如果用戶鍵入的速度夠快,則只會導致一個查詢。如果您的數據庫索引設置正確,即使是大量的查詢也不應該成爲問題。
以前我用過jQuery Autocomplete Control。它會在之後幾秒鐘完成請求用戶完成打字,防止向服務器發送大量請求。
我使用的setTimeout()
var timer;
$('#name').keyup(function(){
clearTimeout(timer);
timer = setTimeout(name_check, 300);
});
您可以嘗試每隔5-15秒 – xeranas 2011-05-02 14:48:52