通过观察这个小提琴可能最容易理解:
http://jsfiddle.net/TdBdW/1/ - 对缺乏css道歉。
正如您所看到的,对于我动态生成的下拉列表和文本框,我有一大堆硬编码值。我本来希望直接从数据库中提取这些内容,但查询需要很长时间才能实时使用 - 即当用户点击下拉菜单或尝试输入自动完成框时
相反,我想做的是使用cron作业每晚运行相关查询,但问题是如何获取查询结果并将它们放入我的javascript文件中。
任何人都有任何想法如何实现这个?
非常感谢任何帮助。
马丁
答案 0 :(得分:2)
实现您想要的最佳途径(“cron job创建数据供javascript使用”)是通过JSON进行的。这包括:
为简单起见,您可以使用类似于以下内容创建javascript文件:
var agentValues = [
"excel",
"msword",
"ppt",
];
您可以使用静态的第一行和最后一行轻松创建它,只需在查询中添加引用的值。然后,您可以像任何其他javascript一样将此文件加载到您的html文档中:
<script type="text/javascript" src="..."></script>
填充自动填充值时,只需在此数组上使用for
循环:
for (var i = 0; i < agentValues.length; i++) {
$("<option>" + agentValues[i] + "</option>").appendTo($values);
}
上述内容是实现目标的最基本版本,您可以对其进行改进,例如:由:
答案 1 :(得分:1)
您可以先尝试优化查询吗?如果您运行cron作业,我想您可以将结果写入服务器上的json或xml文件,并使用XHR(也称为AJAX)拉取该文件。
或者,您可以在数据库中设计/创建包含cronned查询结果的表,并从该表中提取数据?
答案 2 :(得分:0)
您可能不希望您的javascript文件是静态的。为什么不以与生成html相同的方式由php脚本动态生成它?如果它更容易你可以在你的html中内联javascript,而不是将它作为一个单独的资产加载。
如果您担心每次都会为标记列表命中数据库,则可以将标记保留在某个全局对象中,该对象会定期更新。