0

通过查看这个小提琴可能最容易理解:

http://jsfiddle.net/TdBdW/1/ - 为缺乏 css 道歉。

如您所见,对于我动态生成的下拉列表和文本框,我有一大堆硬编码值。我本来希望直接从数据库中提取这些,但是查询需要很长时间才能运行以使它们无法实时使用 - 即当用户单击下拉菜单或尝试在自动完成框中键入时.

相反,我想做的是让相关查询每晚使用 cron 作业运行,但问题是如何获取查询结果并将它们放入我的 javascript 文件中。

任何人有任何想法如何实现这一点?

任何帮助是极大的赞赏。

马丁

4

3 回答 3

2

实现您想要的(“cron 作业创建供 javascript 使用的数据”)的最佳途径是通过 JSON。这涉及:

  1. 创建一个 cron 作业,a) 获取数据,b) 将其写入使用 JSON 约定格式化的文件,该文件可从您的 Web 服务器访问,
  2. 修改您的 html 以包含由 cron 作业创建的文件。

为简单起见,您可以使用类似于以下内容的内容创建 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. 添加错误检查
  2. 构造你的命名空间,这样你就没有很多顶级变量
  3. 将数据值添加到现有的 javascript,而不是单独的文件
  4. 等等
于 2011-04-12T10:17:51.643 回答
1

您可以先尝试优化您的查询吗?如果您运行 cron 作业,我想您可以将结果写入服务器上的 json 或 xml 文件,然后使用 XHR(又名 AJAX)提取该文件。

或者,您可以在数据库中设计/创建一个包含 cronned 查询结果的表,然后从该表中提取数据?

于 2011-04-12T09:58:16.700 回答
0

您可能不希望您的 javascript 文件是静态的。为什么不让 php 脚本以与生成 html 相同的方式动态生成它?如果更容易,您可以将 javascript 内联到 html 中,而不是将其作为单独的资产加载。

如果您担心每次都为标签列表点击数据库,您可以将标签保存在某个全局对象中,该对象会定期更新。

于 2011-04-12T09:57:23.067 回答