Я работаю над приложением, которое требует автозаполнения в форме поиска. Применение CFML на Relo 3.3. Я использую AutoComplete jQuery ui AutoComplete и реализовал поиск на стороне сервера, как это:
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 Technique хороший узор? Производительность кажется хорошим, а следа памяти разумна (набор данных довольно маленький), так что «чувствует себя« хорошо, но я ищу любой совет от тех, кто, возможно, попробовал это раньше, и обнаружил проблемы?
Любые мысли Быть очень ценным.