Arhn - архитектура программирования

Доступность кеша для данных о событиях при просмотре полного календарного месяца

Может ли fullcalendar кэшировать данные о событиях просмотра месяцев, когда мы переходим от одного месяца к другому просмотру месяца (кнопки «Предыдущий» и «Следующий»), как например, отложенная выборка кэширует данные за один месяц, когда мы переходим к просмотру недели или дня, поскольку он работает только на один месяц. Скажем, я нахожусь в феврале месяце, а затем переключаюсь на представление дня, данные кэшируются и не отправляют запрос ajax. Но если я меняю месяцы на март и обратно на февраль, февраль все равно перезагружается.


  • Скажем, я нахожусь в феврале месяце, а затем переключаюсь на представление дня, данные кэшируются и не отправляют запрос ajax .... это потому, что данные уже были загружены за этот день, потому что они были загружены, когда данные для всего Февраль был загружен. Так что, очевидно, нет причин просить об этом снова. Но если вы полностью покинете Feb, а затем вернетесь к нему позже, он спросит снова, потому что есть шанс, что события были обновлены на сервере с тех пор, поэтому нужна новая копия. Если вы хотите кешировать эту ситуацию, вам нужно реализовать ее на стороне сервера. 13.07.2020
  • Спасибо, реализация на стороне сервера означает, что я должен использовать локальное хранилище браузера или переменные сеанса на стороне сервера, согласно вашим комментариям, со стороны полного календаря невозможно сохранить результаты поиска за предыдущие месяцы. 13.07.2020
  • реализация на стороне сервера означает, что я должен использовать локальное хранилище браузера или переменные сеанса, нет, вы должны выполнять какое-то кэширование на стороне сервера. localstorage находится на стороне клиента, а не на стороне сервера. И использование переменных сеанса также не является способом кэширования. Я предлагаю вам немного больше изучить эту тему, чтобы улучшить ваше базовое понимание концепций. 13.07.2020
  • со стороны полного календаря невозможно сохранить результаты поиска за предыдущие месяцы ... правильно. Это сделано полностью намеренно. В большинстве сценариев использования пользователи на самом деле не очень часто перемещаются из месяца в месяц, и, как правило, они хотят видеть последние данные с сервера, если они это делают, поэтому в большинстве ситуаций имеет смысл получать эти данные по запросу. Идея также заключается в том, что он снижает нагрузку на ваш сервер (и интернет-соединение пользователя), каждый раз извлекая только небольшой объем данных и только те данные, которые на самом деле будут видны пользователю. 13.07.2020
  • (Напротив, если вы просто передаете fullCalendar все свои данные о событиях всякий раз, когда он загружает календарь, то это может быть большой объем данных (особенно если у вас есть приложение, работающее в течение нескольких лет с историей элементов в нем), большинство на которые пользователь, вероятно, не будет смотреть, так что обычно это пустая трата ресурсов.Если ваш сценарий использования отличается от этого - например, ваши данные редко меняются, или у вас всегда есть данные только в течение ограниченного периода времени в вашей базе данных или что-то еще, тогда вы, возможно, могли бы рассмотреть альтернативный подход Нам нужно знать подробности, чтобы иметь возможность предложить. 13.07.2020
  • Понятно, нет. Размер данных за каждый месяц составляет от 8 до 10 МБ, для этого случая сначала я попробовал локальное веб-хранилище, 5 МБ доступно для Chrome, поскольку оно зависит от браузеров. Я сжал массив событий и сохранил его в локальном хранилище браузера, с помощью этого подхода я могу сохранить данные за последние 9 месяцев, но в браузере IE логика сжатия не работает, и при сжатии массива JSON у нас возникают проблемы, если массив содержит несколько специальных символов, что я и делаю. в настоящее время пытаюсь сделать это в переменных области сеанса на стороне сервера. Я сохраняю последние 9 поисков. Будет ли это лучший подход или у нас может быть какой-либо подход на стороне клиента. 13.07.2020
  • И увидев ответ в ссылке stackoverflow.com/questions/8858426/, я запутался, является ли это полной логикой кеша календаря, и, наконец, понял, что они предложили сохранять массив событий в переменной массива javascript. Кажется, это не соответствует требованию, если дата велика в приложениях реального времени. 13.07.2020
  • Я думаю, что 10 МБ JSON — это действительно большой объем данных о событиях. Сколько в среднем событий содержится в данных такого размера? Вы показываете все это на экране одновременно? если это сотни событий, то я не понимаю, как пользователь может найти это полезным, это слишком много информации для одного человека, чтобы понять ее сразу. Вы думали, есть ли более эффективный способ отображения этой информации. (Очевидно, я не знаю, что представляют собой данные, поэтому я не могу давать идеи, не зная всей ситуации). 13.07.2020
  • данные состоят из 9000-10000 записей, пользователь может щелкнуть ссылку дополнительных ячеек, чтобы перейти к просмотру дня. В режиме просмотра дня он также не может увидеть полную информацию о событиях, взглянув на них как беглый взгляд и щелкнув событие a модальное всплывающее окно будет открыто с подробностями, в дополнение к этому есть левое боковое меню, содержащее несколько фильтров для фильтрации записей о событиях, типы фильтров, такие как статус установки, статус рассылки, статус рассылки, статус отмены. Если пользователь нажимает на один статус, календарь показывает только этот тип записей, а также есть несколько фильтров, таких как имя ячейки, идентификатор ячейки, почтовый идентификатор и категория. 13.07.2020
  • Даже представление месяца в календаре имеет 10000 ячеек, все записи о событиях заполняются без каких-либо проблем, а левые фильтры работают, как и ожидалось, на основе нашего выбора. 13.07.2020
  • Хорошо, достаточно честно. Я думаю, что в обстоятельствах, из того, что вы сейчас упомянули, ваш подход вполне разумен. 13.07.2020
  • Таким образом, похоже, что ваша проблема на самом деле связана с а) проблемами со сжатием данных JSON и б) проблемами с устаревшей поддержкой IE. Может быть, было бы лучше задавать отдельные, конкретные вопросы по этим темам, которые на самом деле не имеют прямого отношения к fullCalendar. 13.07.2020
  • вау, это первый раз, когда вы полностью согласны с моей ситуацией, даже моя проблема не решается, я доволен вашим предложением. Не могли бы вы проверить ссылку stackoverflow.com/questions/8858426/, как предлагается в этой ссылке, могу ли я сжать массив событий и сохранить его в локальных переменных JS, чтобы сохранить последние 6 поисков. На данный момент я сохраняю последние 9 массивов событий в переменной сеанса, но проблема заключается в том, чтобы получить переменную массива сеанса на стороне сервера в код JS. Мне нужно использовать вызов ajax, поэтому вызов ajax по-прежнему занимает больше времени, чтобы получить массив 10 МБ для js-код. 13.07.2020
  • Я не думаю, что на самом деле есть какой-то способ обойти это, если только вы не загрузите 100 МБ данных заранее, когда пользователь впервые загружает эту страницу, а затем сохраните их там в локальном хранилище и статически загрузите их в fullCalendar, даже не обращаясь к сервер. Однако это привело бы к ужасному первому просмотру страницы. И в конечном счете, если вам нужны данные в календаре, вам придется в какой-то момент загрузить их. Ваше единственное решение заключается в том, когда загружать его, как часто и насколько велика каждая загрузка. Вам определенно нужно заставить работать сжатие, чтобы сделать его быстрее. 13.07.2020
  • Большинство HTTP-серверов предлагают встроенное сжатие, которое вы можете настроить, и вам, скорее всего, не нужно кодировать его самостоятельно. 13.07.2020

Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..