Igor
ибо в native как напишешь, так и будет. Ни каких неожиданостей.
Igor
И он уже по размеру как старый + JQ вместе взятые, хотя версия 0.1.0
Это разобраный файл. Перегони его через сборщик.
Vladimir
В jq далеко от интуитивного понимания когда выполняет одну операцию или проходит цикл
Vladimir
Вот прям далеко не очевидно
Dmitry
К простым вещам все привыкли
Vladimir
Так же непонятно когда ты работаешь с jq объектом а когда с нативным элементом
Dmitry
На джквери всё понятно
Igor
Так же непонятно когда ты работаешь с jq объектом а когда с нативным элементом
Это всегда бесило. Проще было каждый раз заного инициализировать объект.
Dmitry
На джквери всё понятно
Когда простые вещи
Алексей
В jq далеко от интуитивного понимания когда выполняет одну операцию или проходит цикл
В js единственная сложная при первом приближении вещь это асинхронность, если она становится понятной то на jq дальше все на автомате и интуиции
Vitaly
Дело привычки, на самом деле, перейти на ванилу, и чем раньше себя начинаешь на это пересаживать, тем лучше☺️ Все стадии "принятия" проходишь по дороге, jquery как стандарт на кажом сайте остался в прошлом, это факт.
На каждом и не нужно. И я не против ванильки для сложных проектов. Но для типовых задач: поменять, подсветить, скрыть, и.т.п это это экономит время очень просто потому что кода меньше пишешь. JQ - стандарт? Нет. Но удобен иногда также, как, скажем Bootstrap.
mmth
jQuery is not defined
Тут с другой стороны посмотреть на это можно: кто мешал в нативный js добавить частично ванильный сахар который был в jquery, тем самым отдали бы дань чести создателям jquery и ускорили бы миграцию остальным разрабам)
Igor
Вообще плюсом jq было работа с реактивными домом. Вот это на нативе без либ и хелперов делать довольно сложно. Проще прямо в элементах события вещать
Igor
Тут с другой стороны посмотреть на это можно: кто мешал в нативный js добавить частично ванильный сахар который был в jquery, тем самым отдали бы дань чести создателям jquery и ускорили бы миграцию остальным разрабам)
Так многое пренесли на ванилу и даже улучшили. Простые вещи на ваниле ты пишешь от руки. Когда переходишь на более сложные вещи начинаешь подбирать библиотеки. А когда дошел до библиотек, то уже и до сборщиика не далеко. А там и динамическая подгрузка скриптов по требованию и т.п.
mmth
И тогда бы началась путаница
Ну может быть. Но аргументы не переходить убавило, и переучиваться не надо было бы)
Igor
Ну может быть. Но аргументы не переходить убавило, и переучиваться не надо было бы)
Переучиваться в любом случае надо было бы. Ибо у JQ своя извращенная логика. Поэтому и переходить сложно и отказываться от него нужно
Vitaly
Вообще плюсом jq было работа с реактивными домом. Вот это на нативе без либ и хелперов делать довольно сложно. Проще прямо в элементах события вещать
Вот да. Это был самый шок, когда вместо $(.class).on, который мог быть и реактивным, нужно или использовать паттерн делегирования, который не прямо прост в понимании или идти циклом по всему массиву элементов с классом, и перепроходить после AJAX'а.
Vitaly
А AJAX, который грузит html'ку со своими скриптами? Натив? Фигушки. Ищи в ответе теги скрипт и выполняй в цикле вручную. Кошмарище.
mmth
Короче react)
он следующий на очереди у старухи с косой, после jquery, ибо первый был😅
Igor
Короче react)
Реакт тебе нужен если у тебя реактивный фронт. А мы говорим о простых радостях вроде ajax запросов.
Igor
Я сейчас просто стараюсь своими событиями все обвещивать. отрендерил элемент повесиил событие и т.д
Vitaly
Зато ты точно занешь что ты делаешь и как это работает. Привыкаешь довольно быстро.
Ага, в 100500 подключенных либах, скомпилированных в минифицированный скрипт. И я уже не говорю про то, что для задач вроде "добавь одну свистелку-мигалку на сайт" нужно заново все это перекомпилировать.
Алексей
Скорость
Service worker вот где скорость
Алексей
Service worker вот где скорость
Проксисервер в каждом устройстве
Igor
Service worker вот где скорость
Вот смотри, как выгядит сайт. Заходишь ты на главную и тебя все прогрузилось dns упал в кеш. Ты переходиишь на другую страницу, что у тебя проиходит, правиильно страница полностью отрисовывается по новой. И для примера разница в этих страницах только в одном блоке. Тобишь ради одного блока ты полностью перезагружаешь страницу.
Igor
В лучае с реактивным фронтом, ты можешье менять части страницы в зависимости от условий. при это ничего лишнего ты запрашивать и получать не будешь.
Igor
Но у реакта хватает проблем, так что всему есть свое приминение.
Алексей
Вот смотри, как выгядит сайт. Заходишь ты на главную и тебя все прогрузилось dns упал в кеш. Ты переходиишь на другую страницу, что у тебя проиходит, правиильно страница полностью отрисовывается по новой. И для примера разница в этих страницах только в одном блоке. Тобишь ради одного блока ты полностью перезагружаешь страницу.
Все зависит от стратегии, например если это прилржение, заходит юзер на страницу выбора упражнений, пока по ней лазит сервисворкер уже ему все страницы упражнений подгрузил и человек переключается в дальнейшем между страницами без малейших задержек, при этом они все поддерживаются в актуалтном состоянии через ETag
Алексей
А потом человек такой, а че это у меня память в телефоне кончилась
Ага, если учесть что почти все страницы той же joomla например идут с заголовком no-cache, и сохраняются в кэше браузера, а так все норм.
Алексей
Заголовок no-cache только выглядит, так что типа не разрешает кэширование. По факту эту фунуцию выполняет no-store
Dmitry
А AJAX, который грузит html'ку со своими скриптами? Натив? Фигушки. Ищи в ответе теги скрипт и выполняй в цикле вручную. Кошмарище.
Ну вот я с этим совсем недавно столкнулся, переписал на натив. Ну да, надо пересобрать скрипты, что поделать.
Dmitry
В конце концов никто не мешает это у себя в функцию загнать, если несколько раз приходится делать.
Dmitry
Я не то чтобы яркостный противник jquery, но на нативе мне как-то даже приятно, и новые штуки JS попутно изучаешь ))
Dmitry
Типа spread оператора 😊
Dmitry
А так в целом из меня джсник так себе, уровень jquery как раз таки 😃
Vitaly
В конце концов никто не мешает это у себя в функцию загнать, если несколько раз приходится делать.
... и сделать функцию, которая давно реализована, как и множество других, в jQuery. А сейчас мы переизобретаем давно изобретенное зачем-то.
Алексей
А так в целом из меня джсник так себе, уровень jquery как раз таки 😃
Php в контексте joomla на порядок, а то и два сложнее js. Я в него так и не въехал, простой плагин написать не могу, выезжаю на хаках
Vitaly
Я не то чтобы яркостный противник jquery, но на нативе мне как-то даже приятно, и новые штуки JS попутно изучаешь ))
Я вот тоже не прямо яростный сторонник именно jQuery, но сторонник экономии времени. Я недавно прочитал толстый справочник ванильного JS от корки до корки в надежде увидеть там ту магию, ради которой все так яростно теперь ругают jQuery. Но кроме fetch и, может, асинхронной загрузки функции, ничего для себя не нашел. Да, подробно, довольно логично. Но вот это все для больших и сложных задач. А вся магия для того, что обычно делают на Joomla, она как раз осталась в jQuery. Такие дела🤷‍♂
Sergey
Доброй ночи. Не подскажете современный способ работы с большими данными и базой? Скрипт получает большой массив в json, и его нужно запихнуть в базу. Понятно, что традиционный способ преобразовния json в массив и затем foreach с select/insert внутри не подходит для такой задачи. Как сейчас подобные задачи решают?
Sergey
А во что упирается традиционный метод в объем оперативки или время выполнения скрипта?
И то и другое. В стандартное время 30 сек. скрипт точно не уложится, и с таким объемом он положит сервер таким запросом. Устанавливать лимит тоже не вариант - не каждый хостер это позволяет. set_time_limit не везде работает. У меня есть решение, в принципе - записать json в файл, и потом запустить демона, который висит в памяти и сам себя перезапускает, он и займется переносом данных из файла в базу стандартным способом. На вскидку этот демон будет часа два такой файл переносить. Но мне кажется это извращение...
Sergey
А объем массива какой?
Неизвестно. Сейчас там несколько миллионов строк, может вырасти и в три и в десять раз...
Sergey
База - это те же файлы, и она умеет вроде работать с json, может можно исключить json_decode и как то сразу? Я тут решил спросить, потому что знаю, некоторые ребята вроде решали подобные задачи...
Алексей
Неизвестно. Сейчас там несколько миллионов строк, может вырасти и в три и в десять раз...
Я обратную задачу решал, получить с сервера массив в 50мб получить из него данные и разложить 14 000 элементов через foreach в index db браузера. Время выполнения 3-5 сек занимает.
Sergey
Ну и таким образом ты делаешь 28к запросов в базу в цикле? Первый идет select, где ты запрашиваешь у базы, есть ли в ней элемент, который ты хочешь записать, затем если нет - то второй запрос insert into, и так пока не закончится. Но если хостер выдал 512Мб оперативки (а именно столько обычно выделяют на популярных площадках под шаред), то ты весь массив в памяти не уместишь... Или я не прав?
Алексей
В index db при сохранении есть такач тема как add и put, add проверяет на уникальность, a put тупо перезаписывает если попадается такой же ключ.
Алексей
Ну и таким образом ты делаешь 28к запросов в базу в цикле? Первый идет select, где ты запрашиваешь у базы, есть ли в ней элемент, который ты хочешь записать, затем если нет - то второй запрос insert into, и так пока не закончится. Но если хостер выдал 512Мб оперативки (а именно столько обычно выделяют на популярных площадках под шаред), то ты весь массив в памяти не уместишь... Или я не прав?
Как вариант можно попробовать получить данные в виде blob sql файла в котором уже заложена раскладка по подготовленным заранее таблицам, сохранить его в файловую систему в виде одного или нескольких файлов и применить к нему или к ним скрипт который срабаиывает типа когда база данных создается при установке с перезаписью существующих элементов, если они дублируются.
Sergey
🧐
Sergey
Cli
Да, спасибо, как раз изучаю )
Sergey
@Septdir в шторме если случайно умный рефакторинг решил по всей джумле заменить классы и успел это сделать - не откатишь уже обратно?
Igor
crtl+z
Sergey
crtl+z
Неа
Igor
тогда тебе не повезло.
Sergey
И половину залил уже на тестовый
Sergey
Пока я увидел что произошло
Igor
ну поэтому я ядро не храню в проекте а проект лежит по гитом
Sergey
ну поэтому я ядро не храню в проекте а проект лежит по гитом
Как-то лень было маппинги настраивать. Накатил ядро с архива, но пока не заводится.
Dmitry
Если необходимо хранить какую-то свою информацию по пользователю, где храним, в своей таблице? Была идея хранить в параметрах, но они скорее всего затираются.
Дмитрий
но я на j3 еще
Dmitry
А оно не трётся, если юзера пересохранить?
Дмитрий
нет
Dmitry
Ну данные не должны быть доступны юзеру