Skip to content

Nonagod/js-user_actions

Repository files navigation

User Actions (frontend)

Реализация концепции user_actions для клиентской стороны. Упрощает и немного формализует взаимодействие с сервером.

Установка

Для установки на сайт достаточно копировать файл библиотеки dist/user_actions.min.js и подключить его как скрипт.

Использование

Библиотека создает глобальный объект UserActions. Чтобы отправить запрос к серверу, достаточно вызвать метод UserActions.do( '<action_name>', options );, с нужными настройками, где:

  • <action_name> - обязательный, строковый код действия пользователя (согласно соглашению)
  • options - опциональный, объект параметров запроса
    • data - объект (в т.ч. экземпляр FormData) данных, составляющих тело запроса
    • url - адрес на который отправить запрос (абсолютный или относительный, по умол. текущая стр)
    • handleSuccess - обработчик который будет вызван при успешном запросе. В качестве параметра получает:
      • result_data - данные ответа от сервера (согласно соглашению)
    • handleError - обработчик который будет вызван при ошибке запроса (любой, на сервере или в js коде). В качестве параметра получает:
      • Error - Объект JS ошибки (согласно соглашению)

Метод блокирует одновременное выполнение одинаковых запросов

Прочее

Эмуляция зарпосов

Модуль позволяет настроить эмуляцию запросов, в случаях если не готова серверная сторона или среда разработки не позволяет делать запросы. Пример:

UserAction.enableEmulation(); // переключаем модуль в режим эмулирования
UserAction.Emulator.add('test', // добавляем запрос для эмуляции (со всеми параметрами, важно)
    {
        data: {error: 1},
    },
    { // заполняем объект ответа, согласно концепции
        status: false,
        result: {
            code: 'HAPPENED',
            msg: "Произошло...",
            info: {
                some: "Дополнительная информация, если есть"
            }
        }
    }
);

window.UserAction.do( 'test', { // при запросе в коде, буде отдан объект определенный выше (под дальнейшую обработку)
   data: {error: 1},
});

Замена обработчиков по умолчанию

По умолчанию UserActions использует встроенные обработчики для успешного ответа и ответа с ошибкой (если в запросе не указаны другие). Их можно заменить, например:

// после подключения модуля
UserAction.handleSuccessDefault = (data) => { alert( 'По умол., успех: ' + data); };
UserAction.handleErrorDefault = (Error) => { alert( 'По умол., ошибка: ' + Error.message); };

Запросить часть страницы

window.UserAction.do( 'buffer', { // при запросе в коде, буде отдан объект определенный выше (под дальнейшую обработку)
   data: {
       part: 'block_3' // заложенная по соглащению часть шаблона
       // ... дополнительные данные для фариаций части
   },
});

About

"User action manager" for client side.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published