В настоящее время мы выполняем сценарий автозавершения ajax через mySQL, например:
<?php
$q = strtolower($_GET['term']);
if (!$q) return;
$q = noescape($q);
if (is_numeric($q)){
$q = mysql_query("SELECT * FROM `blah` WHERE `id` LIKE '" . $q . "%' DESC LIMIT 10");
}else{
$q = mysql_query("SELECT * FROM `blah` WHERE `name` LIKE '" . $q . "%' DESC LIMIT 10");
}
$json = array();
while ($r = mysql_fetch_array($q)){
$json[] = array(
"v" => $r['v'],
"p" => $r['p'],
"s" => $r['s'],
"l" => $r['v'] . ', ' . $r['s'] . ' (' . $r['p'] . ')'
);
}
echo json_encode($json);
?>
Мы стремимся ускорить поиск, чтобы не требовалось вызывать базу данных и замедлять работу.
Я смотрел на кого-то, кто еще не выполнял автоматическое заполнение, и во время поиска - его ajax делал вызов в файл "search.ds? Query = blah" - что это? как мы можем подражать чему-то так быстро?
При загрузке файла .ds, который он запросил, мы открыли его, и все, что он содержал, было массивом того, что соответствовало нашему поиску, поэтому они не сохраняют ВСЕ данные там.
Спасибо