Ускорение автозаполнения jQuery (неизбежно длинные списки)

Я начал свое путешествие по ускорению автозаполнения jQuery сегодня днем ​​и решил, что, вероятно, было бы неплохо начать memcaching всего. Как предлагается в этой статье: Ускорение автозаполнения .

Однако я все еще сталкиваюсь с медленным временем отклика даже после установки и использования Memcached.

Проблема в моем случае в том, что я имею дело с чрезвычайно длинными списками, в моем случае, более 6700 отдельных членов. (Все роды или роды всех растений)

Узким местом, кажется, является построение таблицы и заполнение клиентского списка, и это не вызвано извлечением информации из Memcached .

Если бы кто-нибудь еще сталкивался с этой конкретной проблемой, я хотел бы услышать об умном способе ее решения. Я выложу свой код ниже.

Примечание: эта конкретная страница недоступна для широкой публики, и я знаю, что есть несколько зияющих дыр в безопасности.


require_once 'oo/Database.php';

$mysqldb = new Database;

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect to memcache");

$sql = "SELECT DISTINCT `Genus` FROM importlist.plants";

$key = md5('query'.$sql);

$result = $memcache->get($key);


//check if we got something back
if($result == null) {

    //fetch from database
    $result = $mysqldb->rawSelect($sql)->getResult();

    //set to memcache, expires after 1 hour
    $memcache->set($key,$result,0,3600); 
}

//Result array
$Genera = ($memcache->get($key));

//Add required "quotation marks" for autocomplete
foreach ($Genera as &$Genus){
    $Genus = '"'.$Genus[Genus].'"';
} 
$Genera = implode($Genera,',');

//PHP to generate jQuery    
echo <<< EOT

    
EOT;

?>


5
задан Community 23 May 2017 в 11:58
поделиться