В целом решение кажется правильным с дополнением Adamos про "вообще не надо хранить у себя" - это выглядит логично.
А все рассуждения про то что если сайт взломают...
Не взламывают битрикс, если:
1 Нет простых паролей
2 Сам не оставил нигде бэкдоров, в т.ч. restore.php забытый в корне
3 Удалил все неиспользуемые модули (привет модуль vote!)
4 Вовремя обновляешься
Это 4 простых правила.
Артем, тоже плохое решение.
Давайте начнем с того, что плох сам подход когда за создание DOM элементов отвечает один актор (в вашем случае бэкенд), а за развешивание событий на них - другой (js на сайте). Это порождает высокую связность между бэкендом и фронтэндом. Связность это всегда плохо.
Именно по этой причине от jQuery отказались к концу десятых годов и массово стали переходить на реактивные фреймворки.
Но это не значит что на jsquery нельзя сделать нормально.
В принципе можно. Для начала вам придется помнить о том что все функции применительно к элементам должны быть одноразовыми. Т.е. вызов одной и той же функции не должен приводить к тому что она будет обрабатывать одни и те же элементы. Проще всего сделать это удаляя селектор на который трегирится функция. В вашем случае после получения ноды DOM удаляя с нее класс swiper-container, перед запуском Swiper.
Для Swiper это не оч. важно - кажется он умный и понимает что его второй раз трегирят на ноде, но для всех функций остальных это необходимо, чтобы разорвать связность между ними и историей запуска. После этого вы сможете вызывать на странице функции инициализации плагинов "безопасно", не боясь что на один элемент повиснут два, три или больше кликов.
Затем засуньте всю вашу инициализацию в одну функцию. Добейтесь чтобы она нормально работало в любое время не только на jQuery.ready и убедитесь что ее перевызов ничего не ломает.
Далее можете использовать ее и в ready и в ajax и где угодно.
А где функция getScript-то? Покажите нам ее.
В коде у вас кусок вызова ajax который мало о чем говорит.
Я могу попробовать догадаться - после ajax у вас меняется страница, и соответственно в новых блоках которые появились, не навешиваются скрипты на селекторы. Поэтому вы решили что хорошей идей будет перезагрузить скрипт который эти события навешивает.
Если я прав - это очень плохая идея.
Алан Гибизов, наверное в контексте этого вопроса вообще не нужно говорить о форме.
В худшем случае о форме документа (и не важно откуда он взялся - генов сайта в нем нет).
Что такое форма в документе? Это просто человеко-удобный способ сгенерировать запрос с параметрами. А куда он там будет отправлен на стороне формы не важно. А на стороне сервера вообще всё равно.
По сути вопрос можно переформулировать - можно ли в дерево забивать гвозди молотком с рукоятью вырезанное из другого дерева? Гвозди войдут? Да гвоздям как-то пофиг.
Evgenii, нет, это так не называется.
А докопался потому что хочу чтобы человек понял, что как только "сайт" отдал ему страницу, это уже не его страница, а просто документа открытый в браузере и что с ним дальше происходит ни один сайт не знает. У ТС явное недопонимание клиент-серверной модели. И будет хорошо если он поймет ее на базовом уровне. Многие вопросы, в т.ч. и этот, просто лишаться смысла.
Noder SS, правильным будет вопрос - "что значит форма сайта?" meburka, как только не найдешь ответ на него - сразу все станет на место. Нет никаких "форм сайта"
Vitaly Karasik, я знаю что там полно ресурсов (это кстати ясно по производительности CPU) - дело не в них. Я видел скрины с top и еще какой-то тулзы с вебgui - проблема не упирается в производительность железа. Даже когда сайты ложаться нагрузка никакая.
1 Понятия не имею. У меня нет доступа к серверу.
2 Там все медленно. Просто любые запросы очень медленные. Иногда запрос по одному полю висит по полсекунды, в то время как на нормальном серваке он выполняется за тысячные доли. Т.е. туда смотреть бессмысленно, так как скорость исполнения практически не зависит от запроса. Просто проваливается и все.
Román Mirilaczvili, да там вообще пофиг какие запросы - они все тормозят. Просто медленно выполняются. Т.е. я делаю аналогичный запрос на тестовом и он выполняется 0,001 сек. И на проде и он выполняется 0,7 сек.
Виноват конечно LIKE?
А все рассуждения про то что если сайт взломают...
Не взламывают битрикс, если:
1 Нет простых паролей
2 Сам не оставил нигде бэкдоров, в т.ч. restore.php забытый в корне
3 Удалил все неиспользуемые модули (привет модуль vote!)
4 Вовремя обновляешься
Это 4 простых правила.