Вот то, что я пытаюсь или делаю, я просто показываю примерно 100 tasks
экземпляр на странице.Отображаемые задачи являются ссылками (с возможностью нажатия), щелкнув по ним, вы перейдете на конкретную страницу показа экземпляра tasks
.С этой страницы показа пользователь может вернуться на страницу, на которой он / она был раньше, то есть на страницу отображения 100 tasks
.
Теперь в этот раз я снова извлекаю эти 100 экземпляров задач из БД, мне нужен способ их "кэшировать", чтобы не было необходимости извлекать снова.Есть ли способ сделать это?
Редактировать:
def user = User.get(springSecurityService.principal.id)
sleep(1000)
params.max = Math.min(params.max ? params.int('max') : 10, 100)
def tasks = Tasks.findAllByIsReadAndUser(false,user,[cache:true],params)
def tasksCount = Tasks.createCriteria().list(max: params.max as Integer, offset: params.offset as Integer) {
and {
eq('user',user)
eq('isRead',false)
}
}
if(request.xhr) {
render(view:'scroll', model:[userTasks:tasks,tasksCount: tasksCount.getTotalCount()])
}
else
{
[userTasks: tasks, tasksCount: tasksCount.getTotalCount()]
}
}
В частности, у меня есть этот код, который работает, если пользователь нажимает полосу прокрутки в нижней части своей страницы и получает дополнительные данные:
(function() {
jQuery(function() {
return $(window).scroll(function() {
var url;
url = $('.pagination .nextLink').attr('href');
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
$('.pagination').show();
$('.pagination').text('Fetching more data please wait...');
return $.get(url, function(data) {
$('#scrolling').append(data);
return $('.pagination').hide();
});
}
});
});
}).call(this);
Теперь проблема в том, что, несмотря на добавление cache:true
в код моего контроллера и кеша, из-за этого кода jquery я снова получаю данные!
Как мне это остановить?
Заранее спасибо.