Всего 125 971 комментарий

Кирилл Киселев
18 февраля 2022, 17:03
0
Прекрасно тебя понимаю, я стакой же ситуацией ушел на фронт React
Roman
18 февраля 2022, 16:26
0
Хотел протестировать не работает на Modhost(
Scorp Satex
18 февраля 2022, 16:25
+1
Разобрался сам, выложил cвой вариант решения.
Андрей
18 февраля 2022, 13:27
0
Можно использовать upgradeModx, должно всё корректно обновить.
Артур Шевченко
18 февраля 2022, 10:50
0
Я догадывался поэтому и не послал)))
Артур Шевченко
18 февраля 2022, 10:45
+1
Есть мнение и я с ним согласен, что jQuery морально устарела и большинство тех возможностей, из-за которых все ей пользовались, реализованы в нативном js. А весит jQuery очень много и когда у тебя лэндос, где только отправка формы и нужна невольно закрадывается мысль, что jQuery это лишнее ?
Николай Савин
18 февраля 2022, 10:41
0
PR в таком виде у тебя не примут. Нет смысла слать.
Артур Шевченко
18 февраля 2022, 10:40
0
Спасибо, я забыл, что так можно было. Перепишу. Заодно и замечания Николая Савина учту.
Артур Шевченко
18 февраля 2022, 10:38
+1
А почему у тебя в объекте методы внутри метода? Это же нелогично. Вынеси их в корень объекта. Для чего нужна вложенность?
Да ни для чего))) Это пробный шар, мне для тренировки, сообществу для пользы.
И я правильно понимаю, что в твоем варианте оригинальный ajaxForm все равно нужно подключать, а потом этой штукой перезаписывать метод initialize?
Да. В идеале сделать pr и из коробки загружать этот код, но для этого нужно его до ума до вести.
Баха Волков
18 февраля 2022, 09:59
+3
Что-то вчера захотелось переписать самому, но потом перехотел, а так хотя бы толкну тебя в нужном направлении

class AjaxForm {
    constructor (config) {
        this.forms = document.querySelectorAll(config['formSelector'])
    }

    resetErrors (e) {
        // some code
    }

    success () {}

    sendAjax () {}
}

new AjaxForm(afConfig)
Кирилл Киселев
18 февраля 2022, 09:38
0
Ого. Давно хотел перебить на ванилу все связанные плагины с ms2, но руки не доходили, видимо не я один такой, кто хочет все на ванилу переписать, спасибо тебе!
Николай Савин
18 февраля 2022, 08:39
0
Я еще не встречал хостинга, на котором не было бы панели управления кроном или просто доступа к crontab.
Какие 4 часа? О чем вы?
Если задача отправить письмо о новом заказе то:
Проверить таблицу очередей. Если есть необработанная запись ОДНА — взять номер заказа, сформировать письмо о заказе — отправить его.

Если задача отправить письмо о регистрации клиента то:
Получить из таблицы очередей ID клиента — составить письмецо, отправить его.

Тут секунды 2 работы в худшем случае.
Vladimir
18 февраля 2022, 08:34
0
Другого не знал, да и не думал что на обычном хостинге есть доступ к крону, так как он делается через консоль, и получается даже если скрипт будет работать там часа 4, то так же будет выполнятся, или есть лимиты по которым задача убьётся?
Николай Савин
18 февраля 2022, 08:27
0
Зачем так сложно? Задания очередей можно писать в таблицу базы данных. Я обычно использую simpleQueue. Есть также встроенный механизм очередей в MODX.
Для выполнения заданий запускаете ежеминутно крон, который будет по одной записи за раз дергать и выполнять.
Vladimir
18 февраля 2022, 08:23
0
Это отлично, а можете пожалуйста кинуть как-нибудь статью или ресурс где почитать про очередь, чтобы делать вещь на backgrounde, есть такие вещи подобные но как я понял это уже будет не оптимизированно под быструю работу, типо fpm + apache в настройках сервера, отключаем поддержку fastcgi. И только тогда получается fastcgi_finish_request(); и тогда оно в фоне само крутится, типо допустим если файл до гига, это пример с загрузкой на яндекс диск, то можно без него подняв лимиты хостинга но там максимум 300, то set_time_limit(); и ini_set('max_execution_time', 50000); поможет но тоже проблемы, пытался по-другому как-то не получается да и не понятно
Николай Савин
18 февраля 2022, 08:05
0
Кстати в будущих версиях компонента механизм очередей будет уже в ядре.
Николай Савин
18 февраля 2022, 08:03
0
Вообще-то да. Ровно та же проблема при отправке заказа в CRM какой-нибудь.
Решение тоже общее. Нужно использовать очереди. И вместо отправки заказа просто записывать задачу в очередь. Тогда нагрузки не будет никакой. Ну а очереди читать и выполнять, как фоновый процесс.
Vladimir
18 февраля 2022, 08:01
0
Да я видел, про это тоже выше писал, ведь с таким способом будет дольше создаваться заказ, нет?
Vladimir
18 февраля 2022, 08:01
0
в контекстах добавил адрес сайта в site_url и всё стало норм
Николай Савин
18 февраля 2022, 07:58
0
Вам нужно, чтобы отправлялось письмо о факте регистрации?
Я писал заметку на эту тему уже
modx.pro/development/16620