2013-04-12 10 views
0

У меня есть сайт, созданный в codeigniter.
В поиске страницы У меня есть форма, которую я компилирую. Я отправляю запрос серверу с CURL и возвращаю мне xml.
Этот запрос и дата печати составляют около 15 секунд, потому что мне нужно сделать больше запросов со многими серверами, и это время необходимо.
Но проблема в следующем: у меня есть список элементов, когда я нажимаю элемент, я делаю запрос для извлечения данных элемента.
Но если я нажму или вернусь, чтобы вернуться ко всем найденным элементам, я не хочу делать другой запрос, который занимает 15 секунд.
Страница кэширования Codeigniter

Когда я ищу элемент У меня есть запрос получить и у меня есть ссылка, как это:

http://myurl/backend/hotel/hotel_list?nation=94&city=1007&check-in=12%2FApr%2F2013&check-out=13%2FApr%2F2013&n_single_rooms=1&n_double_rooms=0&n_triple_rooms=0&n_extra_beds=0 

я загрузить страницу, и я могу иметь больше элементов. я нажимаю на некоторые из этого в простую ссылку, как это:

http://myurl/backend/hotel/hotel_view?id_service=tra_0_YYW 

Когда я вхожу в эту страницу, я должен вернуться к предыдущему URL (первый), не переделать запрос, который занимает более секунд. Я не могу кэшировать результат, потому что это база данных в реальном времени и меняет каждую минуту или секунду, но я решил кэшировать поиск по страницам, когда я вхожу на него, и если я вернусь к нему, перезагрузите его из кеша, если время меньше 2 минут например.
Это хороший способ или есть более совершенный способ сделать это в кодерингите?
Я не могу поставить сессию, потому что есть большие данные.

Другим решением являются:
- страница кэша (но каждые минут я должен удалить его)
- результат кэша (но каждые минут я должен удалить его)
- создать sessionflashdata (но у меня есть большой объем данных)

есть ли способ с браузером, когда я вернусь, чтобы не переделать страницу?

Благодаря

+0

Использование db-сессии вы можете легко ввести огромные данные, просто используйте его с полем ТЕКСТ для userdata nope? – sbaaaang

ответ

1
  • страница кэша (но каждые минут я должен удалить его)

Я думаю, что вы можете легко реализовать с функцией кэширования страницы CodeIgniter в «$ this-> output- > кэш (1);»

  • результат кэша (но каждые минут я должен удалить его) Вы должны будете использовать метод кэширования объекта CodeIgniter для его реализации.

  • создать sessionflashdata (но у меня большой объем данных) Неплохая идея сохранить огромные данные в сеансе. Вместо этого вместо этого используйте «сеанс базы данных», который поможет вам справиться с подобным способом, а codeigniter имеет встроенную поддержку.

Надеюсь, это поможет. Вы можете узнать больше о all kind of codeigniter caching, если вы только начинаете с него.

Смежные вопросы