【发布时间】:2011-05-15 16:55:41
【问题描述】:
我正在创建一个网站,用户可以在其中输入他的位置(只能是存储在我的数据库中的位置)。为了使其用户友好,我想在他键入职位时向他展示可用的职位选择。有没有办法预先在浏览器中缓存 SQL 中的所有值(大约 30 到 40),以便用户在输入时可以看到它们。
【问题讨论】:
-
您使用的是什么服务器端技术?
标签: sql mysql web-applications browser
我正在创建一个网站,用户可以在其中输入他的位置(只能是存储在我的数据库中的位置)。为了使其用户友好,我想在他键入职位时向他展示可用的职位选择。有没有办法预先在浏览器中缓存 SQL 中的所有值(大约 30 到 40),以便用户在输入时可以看到它们。
【问题讨论】:
标签: sql mysql web-applications browser
您可以通过 PHP 和大多数其他服务器端脚本查询您的数据库,并通过 ajax 调用它们。您还可以将纯 javascript 与新的 html5 规范一起使用(但它们目前仅在 webKit 浏览器中受支持)。
如果你想不使用ajax,你可以在用户访问页面时获取值并将它们放入一个javascript数组中。这样,当计算机读取 javascript 时,自定义值已经存在。这种方法的问题是它会显着减慢您的网站响应时间。
示例:(php/伪代码)
<?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 行中...