6

我正在开发一个需要搜索表单上的自动完成字段的应用程序。该应用程序是 Railo 3.3 上的 CFML。我正在使用 jQuery UI 自动完成并在服务器端实现了这样的查找:

private struct function getStationDetails(required numeric uic)
{
    var qryCacheStations = new query();
    var qryStations = new query();
    var cacheData = "";
    var resultData = "";
    var stcResult = {};

    qryCacheStations.setDatasource(variables.instance['dataSource']);       
    qryCacheStations.setSQL("select distinct uic, name, crs from stations order by name");
    qryCacheStations.setCachedwithin(createTimeSpan(1,0,0,0));
    cacheData = qryCacheStations.execute().getResult();

    qryStations.setDBType("query");
    qryStations.setAttributes(srcTbl = cacheData);  
    qryStations.setSQL("select name, crs from srcTbl where uic = :uic");

    qryStations.addParam(name="uic",value=arguments.uic,CFSQLType="CF_SQL_INTEGER");

    resultData = qryStations.execute().getResult();

    stcResult = {
        name = resultData['name'][1],
        crs = resultData['crs'][1]
    }

    return stcResult;
}

基本上,我在第一次查找时将整个电台列表加载到缓存中,有效期为 1 天(数据很少更改),然后使用查询查询将相关结果返回给客户端。

我的问题就是这个;这种积极的缓存和 QoQs 技术是一个好的模式吗?性能似乎不错,内存占用也很合理(数据集很小),所以“感觉”还可以,但我正在寻找那些以前可能尝试过并发现问题的人的建议?

任何想法将不胜感激。

4

2 回答 2

1

你可以使用 Jquery 自动完成

缓存长度:数字

在客户端设置缓存启用,这样可以减少对服务器的调用次数并提高性能

于 2011-09-18T05:26:53.607 回答
0

我使用了完全相同的技术并取得了巨大的成功。

假设您的数据没有意外增长,那么您肯定在做正确的事情。

于 2012-01-20T15:41:51.850 回答