Ajax вызов с MYSQL Update с задержкой на вызываемой странице - PullRequest
0 голосов
/ 13 мая 2011

В настоящее время я работаю над созданием небольшого поискового скрипта с Jquery и AJAX. Это живой скрипт обновления, который динамически загружает результаты в div.

Это работает отлично, но я хочу отслеживать, какие ответы показываются. Я пытался поместить оператор обновления MYSQL на страницу результатов с помощью sleep (), чтобы предотвратить обновление базы данных в ближайшее время (некоторые вопросы отображаются в течение 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'"); 
};

Проблема в том, что это замедляет страницу для сканирования, у кого-нибудь есть лучшее решение для этого? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Я не совсем уверен, к чему вы клоните, но похоже, что вы делаете мгновенный результат, когда он выводит результаты по мере ввода?Если это то, к чему вы стремитесь, я бы посоветовал отправлять вызов AJAX только после того, как пользователь перестал набирать текст в течение определенного времени.Я бы достиг этого, поместив вызов AJAX в setTimeout, а затем каждый раз, когда пользователь печатает, сбрасывает время ожидания.

Пример:

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

Сценарий php должен иметь возможность обновлятьсябаза данных каждый раз, когда она вызывается.

0 голосов
/ 13 мая 2011

Не лучше ли иметь бэкэнд-процесс, в который вы отправляете результаты?Таким образом, вы отделите обновление от внешнего интерфейса графического интерфейса, и оно может сбрасывать данные в базу данных на досуге.То, как вы это делаете, убило бы производительность.Другой вариант - запустить другой процесс, который просто обновляет базу данных и связывается с ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...