Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Одновременная асинхронная работа нескольких Ajax запросов в Диафан

  • 03 декабря, вторник
  • Можно ли как то сделать независимую и одновременную работу нескольких Ajax запросов на одной странице?
    То есть когда, отправлен, но еще не пришел ответ на один запрос, и в этот промежуток времени отправляется второй запрос, с другими данными, то работа первого запроса не нарушалась, и Ajax ответы пришли бы неискаженными на оба запроса и попали в обработчики, которые им отведены ы js. Интересует - 1) Можно ли это в принципе сделать в Диафане без изменения site.js и 2) Если только с изменением site.js то подскажите основные направления изменений - сам принцип, в каком направлении необходимо менять
    • 05 декабря, четверг , редакция: 05 декабря, четверг
    • Цитата
      Можно ли как то сделать независимую и одновременную работу нескольких Ajax запросов на одной странице?

      Ответ: нет, нельзя. Читайте документацию.

      Цитата
      Можно ли это в принципе сделать в Диафане без изменения site.js

      Можно. В DIAFAN.CMS можно всё. Пример реализации - отложенная загрузка шаблонных тегов. Атрибут шаблонного тега - defer.

      Цитата
      — defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

      Подробнее в документации к DIAFAN.CMS: https://www.diafan.ru/dokument/full-manual/templates-functions/

      То есть используйте такой js-объект, как diafan_ajax. С его помощью, можно инициировать массу AJAX-запросов, не задумываясь, пришел ли ответ. Подробнее в документации:
      https://www.diafan.ru/dokument/full-manual/developers/architecture/module/js/
      https://www.diafan.ru/dokument/full-manual/developers/architecture/module/action/

      Пример.
      Код
      diafan_ajax.init($("#eny_form"));

      Соответственно в данном случае форма с идентификатором eny_form
      Код
      <form id="eny_form"></form>
  • 06 декабря, пятница
  • Спасибо за подробный ответ. Посмотрел, как все это реализвано в site.js, в версиях где сделана поддержка defer - мозг вскипел.
    Но выхода нет - Придется разбираться
    • 06 декабря, пятница
    • Зачем разбирать site.js?
      Вам сказали про объект diafan_ajax, используйте его.
  • 06 декабря, пятница
  • А чтобы можно было дать конкретный совет, опишите задачу. Что за модуль, что за данные, кто отправляет, по какому событию и зачем в два параллельных процесса

Новости

  • 28 ноября, четверг
  • Необходимость обновления личного кабинета назревала давно. Предыдущая разметка уже давно не выдерживала того количества информации и функцональности, которая накопилась за последние пару лет. Плюс всем нужна полноценная адаптивность, ведь ЛК оставался последним проектом без адаптивности. Бета-версия кабинета работает с начала ноября, мы уже отладили большинство недочетов, и продолжим это делать в ближайшее время. Старая версия кабинета. Отзывы о новом кабинете, замечания, предложения пишите в теме на форуме

Блоги

  • 16.11.2019
  • Достаточно широкой проблемой, которая вызывает множество вопросов, обращений в тех.поддержку и тем на форуме, является обновление, а именно ошибки, с ним связанные. Корни проблем, возникающих при этом, совершенно различны, но наиболее часто причина в кастомизации. И хоть определение это слишком широкое, всё же процедура выявления проблемы вполне стандартизована и проста. Об этом и пойдёт речь в статье.