Django自动填充字段,更好地预先填充?

时间:2012-01-12 22:32:49

标签: python django json serialization jquery-ui-autocomplete

我希望将jqueryui-autocomplete与django项目集成。我的解决方案的起点是https://code.djangoproject.com/wiki/AutoCompleteSolutions

我遇到的解决方案使用*__icontains*__startswith,但这些搜索当然可以缓存(查看http://djangosnippets.org/snippets/233/)。我想知道如果在数组中使用相对较小的术语列表(10,000?)预填充页面实际上是否会节省数据库命中和数据。是一个更好的解决方案例如,通过django一次性输出术语:

return [str(e.keyword) for e in CM_Dict.objects.all()]

然后在真正基本的jquery-ui-autocomplete配置中将结果列表用作source:

有没有一种很好的方法来对这样的东西进行基准测试?有人在制作中使用django + autocomplete吗?

编辑:我应该补充说,自动填充功能仅适用于已登录的用户,但数据不会以任何方式敏感。

1 个答案:

答案 0 :(得分:0)

这听起来像是对我的早期优化。它会节省数据库命中吗?也许你必须按下数据库来预先填充,这样你的初始页面加载就会受到影响。您可以缓存预填充数据以避免数据库命中,但您也可以在服务器端视图上执行此操作。这似乎可以更好地与现有的Django自动完成解决方案集成。

我在生产中使用了一些自动完成的解决方案。我也是其中一位的作者:django-selectable。对这种类型的更改进行基准测试需要了解每个查询的成本以及使用频率。解析计数/加载时间的服务器日志将是一个开始。总的来说,如果您的自动完成ajax视图是您应用程序中的瓶颈,我会感到惊讶。