Я ищу мнения и альтернативные идеи, так как то, что я делаю, работает, но хотел спросить, было ли это оптимальным
У меня есть сайт, который при вызове обработчика индекса заполняет коллекцию запросов конкретными запросами из таблиц базы данных, чтобы я мог создавать раскрывающиеся списки для выбора пользователем.
Я запрашиваю две модели и помещаю их результаты в соответствующие переменные, а затем просматриваю их в представлении, чтобы создать раскрывающийся список
обработчик индекса
function index(event, rc, prc){
event.paramValue("debug",0);
rc.stages = getmodel("tms_proposal_stage").select();
rc.plannedGiftTypes = getmodel("tms_funding_type").select();
event.setLayout('layout.bootstrap');
}
просмотр индекса
<div class="form-group">
<label for="proposal_stage" class="control-label">Proposal Stage Code</label>
<select id="proposal_stage" name="proposal_stage" class="form-control">
<cfloop query="rc.stages">
<option value="#stage_code#">#short_desc#</option>
</cfloop>
</select>
</div>
Я понимаю, что два запроса - это не так уж и дорого, но если бы мне нужно было выполнить 100 из них, возникли бы проблемы с масштабируемостью. Эти наборы результатов запросов не сильно меняются, поэтому я подумал, не следует ли их кэшировать или хранить и обращаться к ним по-другому?
Я подумал о локальном хранилище html5, которое я использовал, но не в этом отношении. Я также подумал о создании новой функции-обработчика, которая выполняет все эти вызовы базы данных и кэшируется, а затем на нее ссылаются другие функции.
в любом случае, все мысли ценятся