07 июня 2020, 17:16 Не буду делать выводов или куда-то склонять. Расскажу опыт одного нашего магазина. В нем около 30000 товаров сейчас, около 500 стандартных опций товаров. Работает на выделенном сервере с 16 гигами оперативной памяти, процессоре coreI7 последнего поколения. И разрабатывал его не я, а умные ребята… Компонент для импорта экспорта товаров задыхается настолько, что менеджерам приходится готовить excel файлы с 5 товарами. То есть если товаров 1000 то они делают 200 файлов, иначе сайт падает при импорте. Компонент seoFilter сразу после установки «убил» сайт наповал, потому что он как-то генерирует сразу очень очень много своих страниц, компонент mFilter2 справляется со своими задачами, однако количество товаров растет, количество опций растет и он уже тоже задыхается — страницы открываются по 4-7 секунд. Мой вам совет, выбирайте правильные инструменты для решения задач. MODX прекрасен, но я лично не видел ни одного реально большого магазина на нем. Все только бьют себя в грудь, но по факту, пока не видел. Вопросы / Большой интернет магазина на MiniShop2 22 +1
04 июня 2020, 15:11 Еще глупый вопрос задам. У в modx есть возможность работы с удаленными базами данных? Какое наиболее грамотное решение, если сайт продолжает работать со своей базой, но часть информации должен отправлять в базу данных на другом сервере? Вопросы / MODX и Microsoft_Dynamics_NAV, бывал ли у кого опыт? 1 0
31 мая 2020, 13:24 В целом я с вами согласен. То что я пишу сейчас — это не кому-то на заказ, а просто для саморазвития, поэтому творю что хочу) Я когда начинаю что то разрабатывать совсем с нуля, иду от простого к сложного, сначала делаю наброски, пишу так как легче мне и проверяю саму идею. Если уже заработало и идея жизнеспособна, начинаю как-то код улучшать. Поэтому наброски как правило (если код использует js ) делаю на jquery. А на днях посмотрел, ну реально же всего 4 места где используется jquery (а тут еще месяцок назад на этом сайте под одним постом была долгая дискуссия, мол что js сейчас сам по себе идеален для работы c DOM) и стало интересно смогу или нет избавиться от него, просто для прокачки навыков скорее всего. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
31 мая 2020, 13:00 Артем, а подскажите, откуда вы брали информацию о методах у target? Да и на сколько я понимаю, это применимо к любому dom-элементу. matches classList closest Просто это очень похоже на методы jquery а вот у ванильного js я нигде не находил их описания. максимум learn.javascript.ru/dom-navigation но там эти методы не перечислены. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
31 мая 2020, 10:14 ну а по поводу того, чтобы делать все что вы описали на modx, все же подумайте еще раз и взвесьте. Тут либо вы гений, либо сильно обожжетесь и все равно будете кого-то нанимать, на тот же laravel. На мой взгляд, такого масштаба проекты не делаются на cms. Вопросы / Создание проекта в стиле Fishki net с магазином и другими плюшками на MODX 16 0
31 мая 2020, 10:08 я к тому, что очень давно не видел сайтов, которые представляют из себя ленту приколов, утыканную рекламой. Прямо аж глаз резануло. Вспомнилось как в 98 году, купив в ларьке карточку для подключения к интернету на 1 час, ночью через телефонную линию подключался и смотрел нечто подобное) а на данный момент я посещаю максимум 10-15 сайтов, поэтому и не знал, что подобные «явления» все еще живы. Вопросы / Создание проекта в стиле Fishki net с магазином и другими плюшками на MODX 16 0
31 мая 2020, 09:13 решил посмотреть что это вообще такое за fishki.net. Как будто назад в 1998 попал, думал такого уже и нет в современном интернете) Вопросы / Создание проекта в стиле Fishki net с магазином и другими плюшками на MODX 16 +2
31 мая 2020, 08:53 Хорошая практика — вешать обработчик на document, а затем разруливать его таргет через обычный if.ну да, я вначале так и пробовал, Приходит в голову мысль, что раз у нас есть объект event то через него можно проверять кто инициатор, кто target и уже по условию проверять наш ли это пациент.но для меня проблемой стало то, что таргет как ему и положено всегда указывает на инициатора события, тоесть на input например, если мы изменили текст в нем. Но как определить, что этот инпут именно из той формы, за которой мы хотим следить? К примеру форма имеет атрибут id = «filter», но на странице есть еще 20 форм, формы заказа обратного звонка, калькулятора какого-то, еще что то. если наш листенер повешен на весь объект документ, то он будет следить за всеми элементами всех форм и единственный способ решить задачу, который я вижу, это всем input задавать определенный класс и проверять на его наличие. Пока сделал так let form = document.getElementById('formtest'); form.addEventListener('change', function (event) {}по крайней мере под мою задачу так оказалось удобнее. теперь событие возникает только если изменена конкретная форма и что важно для меня — target тоже всегда сама форма, а нее ее отдельный инпут. Насчет FormData нужно будет присмотреться. Я использовал ее несколько раз, но когда нужно было подготовить данные для отправки ajax-ом (хотя это можно сделать и вручную если заранее знаешь какие в форме input и их названия), я чаще пользовался formData чтобы передать через ajax файл. Но наверное вы и Сергей правы — собирать данные из формы эта штука должна уметь. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
31 мая 2020, 08:07 ну а я пессимист по натуре, поэтому отвечу — нет, мне кажется не справится. Это конечно субъективный опыт, но при подходе — просто накупить компонентов и думать что все они друг с другом будут работать хорошо и быстро — дает ужасный результат. Даже если вы и заставите все эти компоненты работать совместно, то уже при 500 посетителей в сутки все будет тормозить. На modx можно сделать все что вы описали, если взять чистой modx, pdoTools а все остальное продумать и разработать самому, аккуратно оптимизируя все запросы, кеширование и так далее. Вопросы / Создание проекта в стиле Fishki net с магазином и другими плюшками на MODX 16 +3
30 мая 2020, 21:45 надо же, это примерно то, что придумал и я в своем методе. спасибо за подсказки. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
30 мая 2020, 21:35 а насчет fetch, да штука классная. Но это уже обработка запросов. А у меня другое. Я наверное запутал всех, акцентируя внимание на слове — форма. Это некий фильтр и в момент изменения любого его поля нужно собрать все текущие данные в виде массива объектов. Теоретически это может быть и вовсе не форма, а какие-то дивы. Ведь форма никогда и не отправляется по сути. Отслеживается событие change, все данные (выбранные чекбоксы например) собираются и далее уже пошла логика работы с этими данными. Форма здесь скорее дань традициям. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
30 мая 2020, 21:14 Спасибо, но formdata он вроде для отправки форм. я смотрел на него, не подходит (или я не умею его готовить) Очень удобным для меня открытием оказались коллекции данных js — form learn.javascript.ru/form-elements сделал пока некий метод на них, но не уверен что смог учесть все нюансы. В форме могут содержаться элементы разных типов. Так например у инпутов нужно получать value, у textarea получать innerHtml, checkbox нужно проверять на наличие атрибута checked и так далее и это чтобы получить то, что мне давала даже не одна строка, а одно слово в jquery — serializeArray() Вопросы / кому не лень, поделитесь опытом по javascript 16 +1
30 мая 2020, 19:31 что-то переделка всего 4 строк с jquery на синтаксис javascript дается тяжко) А что нет никакого метода для получения данных из формы? .serializeArray();давал мне массив объектов в виде name — value 0: Object { name: "price", value: "22000" } 1: Object { name: "price", value: "150000" } 2: Object { name: "brand", value: "Maugli" } length: 3а javascript не подскажите, имеет метод получения сразу всех заполненных полей формы? Я вот для себя открыл, что оказывается существует некая коллекция форм learn.javascript.ru/form-elements которая содержит в себе все формы, все элементы всех форм и так далее Могу делать цикл, сам создавать сам объекты и наполнить ими какой-то массив. Но тогда нужно еще и проверять какой элемент выбран (например если есть input type radio), ну тоесть я то нагорожу 30 строчек кода). Но может я просто не нашел удобного метода в языке js для работы с данными с формы? Вопросы / кому не лень, поделитесь опытом по javascript 16 0
30 мая 2020, 18:23 а я дурак. наверное же вместо document addEventListener можно назначить на заранее полученный элемент. Вопросы / кому не лень, поделитесь опытом по javascript 16 0
29 мая 2020, 16:23 Честь и хвала этим людям. Новости и события / Платные дополнения Sterc уходят в Open Source 10 +3
27 мая 2020, 21:50 пришлите им пол банки сгущенки) Вопросы / БАГ в Minishop2 с количеством в корзине 2 +1
27 мая 2020, 21:44 Я к сожалению пишу не для того, чтобы помочь. Просто в очередной раз хочу выразить недоумение. Мне кажется что я один использую компонент tickets исключительно как способ оставлять комментарии о товаре. И каждый раз с ужасом читаю — «сделал сайт на tickets» или «создаю ticket»… Сколь многогранен и непознан мной этот компонент. Вопросы / Tickets 1.13.0 бесконечное сохранение и ошибка 500 3 0
25 мая 2020, 16:49 Интересная тема. Пусть у вас получится. Поскольку база теперь — это файл, лежащий в корне сайта, то среди выгод вижу например — сильно облегченный деплой сайта и плюс контроль версий, который включает и базу. Вопросы / SqLite для MODX Revolution. Разработка. 13 +1
23 мая 2020, 21:39 Сайт выглядит как одностраничный лендинг, откуда вы там 180 000 страниц набрали. И в карте сайта у вас одна страница. Ну это конечно не мое дело, просто удивлен. А по поводу «тормозит», тут ничего умного не скажу. Проекты которые планируются как большие и нагруженные, нужно изначально правильно планировать — не использовать TB, создавать свои таблицы для данных, подбирать сервер с учетом этих нагрузок и пятое десятое. Не обрадую вас, скорее всего у вас вряд ли получится существенно улучшить работу сайта. Вопросы / Медленная работа сайта при большом объеме страниц 14 0
22 мая 2020, 20:05 Сформулируйте четко что вы хотите. передать в чанк url текущей страницы вместе с GETкак можно достать только GET параметрхочу брать GET оформленного заказа minishop2Я так понимаю, что вы говорите о странице, которую видит покупатель после оформленного заказа. Хотите забирать из url номер заказа? Он и так доступен на этой странице и обратиться к нему можно через {$order.num} Вопросы / Как получить url текущей страницы вместе с GET? 11 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
В нем около 30000 товаров сейчас, около 500 стандартных опций товаров.
Работает на выделенном сервере с 16 гигами оперативной памяти, процессоре coreI7 последнего поколения. И разрабатывал его не я, а умные ребята…
Компонент для импорта экспорта товаров задыхается настолько, что менеджерам приходится готовить excel файлы с 5 товарами. То есть если товаров 1000 то они делают 200 файлов, иначе сайт падает при импорте. Компонент seoFilter сразу после установки «убил» сайт наповал, потому что он как-то генерирует сразу очень очень много своих страниц, компонент mFilter2 справляется со своими задачами, однако количество товаров растет, количество опций растет и он уже тоже задыхается — страницы открываются по 4-7 секунд.
Мой вам совет, выбирайте правильные инструменты для решения задач. MODX прекрасен, но я лично не видел ни одного реально большого магазина на нем. Все только бьют себя в грудь, но по факту, пока не видел.
Какое наиболее грамотное решение, если сайт продолжает работать со своей базой, но часть информации должен отправлять в базу данных на другом сервере?
Я когда начинаю что то разрабатывать совсем с нуля, иду от простого к сложного, сначала делаю наброски, пишу так как легче мне и проверяю саму идею. Если уже заработало и идея жизнеспособна, начинаю как-то код улучшать. Поэтому наброски как правило (если код использует js ) делаю на jquery.
А на днях посмотрел, ну реально же всего 4 места где используется jquery (а тут еще месяцок назад на этом сайте под одним постом была долгая дискуссия, мол что js сейчас сам по себе идеален для работы c DOM) и стало интересно смогу или нет избавиться от него, просто для прокачки навыков скорее всего.
matches
classList
closest
Просто это очень похоже на методы jquery а вот у ванильного js я нигде не находил их описания.
максимум
learn.javascript.ru/dom-navigation
но там эти методы не перечислены.
На мой взгляд, такого масштаба проекты не делаются на cms.
а на данный момент я посещаю максимум 10-15 сайтов, поэтому и не знал, что подобные «явления» все еще живы.
Как будто назад в 1998 попал, думал такого уже и нет в современном интернете)
но для меня проблемой стало то, что таргет как ему и положено всегда указывает на инициатора события, тоесть на input например, если мы изменили текст в нем. Но как определить, что этот инпут именно из той формы, за которой мы хотим следить?
К примеру форма имеет атрибут id = «filter», но на странице есть еще 20 форм, формы заказа обратного звонка, калькулятора какого-то, еще что то.
если наш листенер повешен на весь объект документ, то он будет следить за всеми элементами всех форм и единственный способ решить задачу, который я вижу, это всем input задавать определенный класс и проверять на его наличие.
Пока сделал так
по крайней мере под мою задачу так оказалось удобнее. теперь событие возникает только если изменена конкретная форма и что важно для меня — target тоже всегда сама форма, а нее ее отдельный инпут.
Насчет FormData нужно будет присмотреться. Я использовал ее несколько раз, но когда нужно было подготовить данные для отправки ajax-ом (хотя это можно сделать и вручную если заранее знаешь какие в форме input и их названия), я чаще пользовался formData чтобы передать через ajax файл. Но наверное вы и Сергей правы — собирать данные из формы эта штука должна уметь.
Это конечно субъективный опыт, но при подходе — просто накупить компонентов и думать что все они друг с другом будут работать хорошо и быстро — дает ужасный результат. Даже если вы и заставите все эти компоненты работать совместно, то уже при 500 посетителей в сутки все будет тормозить.
На modx можно сделать все что вы описали, если взять чистой modx, pdoTools а все остальное продумать и разработать самому, аккуратно оптимизируя все запросы, кеширование и так далее.
спасибо за подсказки.
А у меня другое. Я наверное запутал всех, акцентируя внимание на слове — форма.
Это некий фильтр и в момент изменения любого его поля нужно собрать все текущие данные в виде массива объектов. Теоретически это может быть и вовсе не форма, а какие-то дивы. Ведь форма никогда и не отправляется по сути. Отслеживается событие change, все данные (выбранные чекбоксы например) собираются и далее уже пошла логика работы с этими данными. Форма здесь скорее дань традициям.
Очень удобным для меня открытием оказались коллекции данных js — form
learn.javascript.ru/form-elements
сделал пока некий метод на них, но не уверен что смог учесть все нюансы. В форме могут содержаться элементы разных типов. Так например у инпутов нужно получать value, у textarea получать innerHtml, checkbox нужно проверять на наличие атрибута checked и так далее и это чтобы получить то, что мне давала даже не одна строка, а одно слово в jquery — serializeArray()
А что нет никакого метода для получения данных из формы?
давал мне массив объектов в виде name — value
а javascript не подскажите, имеет метод получения сразу всех заполненных полей формы?
Я вот для себя открыл, что оказывается существует некая коллекция форм
learn.javascript.ru/form-elements
которая содержит в себе все формы, все элементы всех форм и так далее
Могу делать цикл, сам создавать сам объекты и наполнить ими какой-то массив. Но тогда нужно еще и проверять какой элемент выбран (например если есть input type radio), ну тоесть я то нагорожу 30 строчек кода). Но может я просто не нашел удобного метода в языке js для работы с данными с формы?
Мне кажется что я один использую компонент tickets исключительно как способ оставлять комментарии о товаре.
И каждый раз с ужасом читаю — «сделал сайт на tickets» или «создаю ticket»… Сколь многогранен и непознан мной этот компонент.
Поскольку база теперь — это файл, лежащий в корне сайта, то среди выгод вижу например — сильно облегченный деплой сайта и плюс контроль версий, который включает и базу.
Ну это конечно не мое дело, просто удивлен.
А по поводу «тормозит», тут ничего умного не скажу. Проекты которые планируются как большие и нагруженные, нужно изначально правильно планировать — не использовать TB, создавать свои таблицы для данных, подбирать сервер с учетом этих нагрузок и пятое десятое. Не обрадую вас, скорее всего у вас вряд ли получится существенно улучшить работу сайта.
Я так понимаю, что вы говорите о странице, которую видит покупатель после оформленного заказа.
Хотите забирать из url номер заказа?
Он и так доступен на этой странице и обратиться к нему можно через {$order.num}