Я создаю сайт, на котором пользователь вводит свою позицию (это могут быть только те, которые хранятся в моей базе данных). Чтобы сделать его удобным для пользователя, я хочу показать ему доступные варианты позиций, когда он набирает позиции. Есть ли способ кэшировать все значения в SQL (от 30 до 40) в браузере заранее, чтобы пользователь мог видеть их во время ввода.
Вы можете запросить свою базу данных через PHP и большинство других серверных скриптов и вызвать их через ajax. Вы также можете использовать чистый javascript с новыми спецификациями html5 (но в настоящий момент они поддерживаются только в браузерах webKit).
Если вы хотите сделать это без ajax, вы можете получить значения, когда пользователь обращается к странице и помещает их в массив javascript. Таким образом, когда компьютер читает javascript, пользовательские значения уже существуют. Проблема с этим meathod заключается в том, что это значительно замедлит время отклика ваших веб-сайтов.
Пример: (php/pesudocode)
<?php
$options = $mysql->getOptions(); // This is the pesudo-code bit.
echo 'options = [';
foreach ( $opt in $options )
{
echo '"' . $opt.name . '"' . ',';
}
echo '];"
?>
Это дает что-то вроде
options = [ "opt1", "opt2", "opt3", ];
который следует читать как массив в javascript. Единственная проблема заключается в дополнительной запятой, но вы должны быть в состоянии решить эту проблему достаточно просто. (и firefox даже не предупредил)
json_encode
- ваш друг для превращения php-массивов в JS-массивы
echo "var options = " . json_encode($mysql->getOptions()) . ";\n"
же самое, без запятой, в 1 строке ...