2011-05-13 51 views
0

我目前正在使用Jquery和AJAX構建一個小型搜索搜索腳本。它是一個實時更新腳本,動態地將結果加載到div中。使用MYSQL進行Ajax調用在被調用頁面中延遲

這是完美的工作,但我想跟蹤什麼答案正在顯示。我試圖把在結果頁面的MYSQL update語句與睡眠(),以防止對數據庫的更新發生在不久(一些問題顯示爲0.5秒,效果的不應該更新)

即時通訊目前使用如下代碼:

sleep(5); 
$id = $row_rs_results['vragen_id']; 
$aantal = $row_rs_results['vraag_getoond'] + 1; 
mysql_select_db($database_ruimerleven, $ruimerleven); 
mysql_query("UPDATE vragen SET vraag_getoond = $aantal WHERE vragen_id = '$id'"); 
}; 

的問題是,它減慢頁面抓取,任何人有這個更好的解決辦法?提前致謝!

+0

其更好的做法是將''... $ aantal WHERE vragen_id ='「分開。 $ id。 「」「' – mrzmyr 2011-05-13 17:36:18

回答

0

將結果發送給後端進程不是更好嗎?這樣你就可以將更新從gui前端分離出來,並且可以在閒暇時將數據刷新到數據庫。你這樣做的方式會導致性能下降。另一種選擇是啓動另一個只更新數據庫並與之通信的進程。

0

我不完全確定你要做什麼,但它聽起來像你正在做一個即時結果的東西,它會帶來結果,你鍵入?如果這就是你想要的,那麼我建議只有在用戶停止輸入一段時間後才提交AJAX調用。我將通過將AJAX調用放入setTimeout來實現此目的,然後每次用戶鍵入它時都會重置超時。

例子:

var ajax_timeout; 
$("#input").keydown(function() { 
    clearTimeout(ajax_timeout); 
    ajax_timeout = setTimeout(ajax_call, 500); 
}); 

PHP腳本應該能夠每次它被調用的時間來更新數據庫。