|
|
本帖最后由 purple 于 2013-1-30 17:28 编辑
Q:当视图列信息有下拉框或者通过脚本得到值,查询效率慢,怎么解决?
A:后台直接读取出来的是真实值,每次需要将您的真实值转换成显示值,所以会导致有多少条数据,就需要查询多少次,是计算脚本,也需要先查询数据库的值,然后计算。这两种情况,导致查询效率受到影响,数据量比较大,建议使用缓存模式,调用queryByDQLWithCache方法。参考脚本如下:
function getOptionsWhere(formName, fieldName, fieldId, andSQL,andSQL2) {
var opts = $TOOLS.createOptions(); opts.add("", "");
var dql = "$formname='" + formName + "'";
if (andSQL) {
dql += " and " + andSQL;
} if (andSQL2) {
dql += " " + andSQL2;
}
var docs = queryByDQLWithCache(dql);
for (var iter = docs.iterator(); iter.hasNext();) {
var doc = iter.next(); var dst_name = doc.getItemValueAsString(fieldName);
var dst_code = doc.getItemValueAsString(fieldId); opts.add(dst_name, dst_code);
}
return opts;
} |
|