Bakhodir 𝖨̷𝖨̷𝖨̷
Совсем не понятно что ты имеешь ввиду, обычно такой код хакеры используют, и зачем там replace("", "")
Deleted
Тебе цель сэкономить место? Или просто чтобы "прикольно" код смотрелся
Deleted
Deleted
Прости за сарказм)
Deleted
Никак потому что так обычно просто не делают
Bakhodir 𝖨̷𝖨̷𝖨̷
Впервые такое слышу
Deleted
В 2007ом развлекались когда вставляли ZIP архив внутрь JPG
И наоборот
Viktor
Окей, а в чем ценность от просмотра?
Сбрось ка файл проблемный
Viktor
Поковыряюсь
Bakhodir 𝖨̷𝖨̷𝖨̷
let c = document.createElement('canvas');
c.style = 'padding:0px;margin:0px;overflow:none;position:absolute;top:0;left:0;',
document.body.appendChild(c);
let w = c.width = window.innerWidth
, h = c.height = window.innerHeight
, ctx = c.getContext('2d')
, total = w
, accelleration = 0.05
, size = w / total
, occupation = w / total
, repaintColor = 'rgba(0,0,0,0.04)'
, colors = []
, dots = []
, dotsVel = []
, portion = 360 / total;
for (let a = 0; a < total; ++a)
colors[a] = portion * a,
dots[a] = h,
dotsVel[a] = 10;
function anim() {
window.requestAnimationFrame(anim),
ctx.fillStyle = repaintColor,
ctx.fillRect(0, 0, w, h);
for (let b, a = 0; a < total; ++a)
b = dots[a] - 1,
dots[a] += dotsVel[a] += accelleration,
ctx.fillStyle = 'hsl(' + colors[a] + ',80%,50%)',
ctx.fillRect(occupation * a, b, size, dotsVel[a] + 1),
dots[a] > h && 0.01 > Math.random() && (dots[a] = dotsVel[a] = 0)
}
anim();
Bakhodir 𝖨̷𝖨̷𝖨̷
вот тебе и код собственно
Deleted
да и он и так все знает, это его код видимо)
Ростислав ✚
Ребята вот решил попробовать написать Paint на JS, какова сложность ?
Deleted
Производительность конечно
Bakhodir 𝖨̷𝖨̷𝖨̷
Да ты просто безбашенный, зачем его так шифровать) А на счет редакторов, хз
Viktor
если сменить кодировку, их конечно станет видно, однако vim похоже попросту не знает, как их скрыть
Deleted
Viktor
возможно и правда есть где-либо плагин, хотя достаточно специфическая тема
Ростислав ✚
Ребята вот решил попробовать написать Paint на JS, какова сложность ?
Deleted
тут есть один просто способ проверить
наличие вызова eval
Ростислав ✚
Спасибо ребята, ну мне не нужно преокт, хочу попробовать сам
Ростислав ✚
то есть свои силы
Ростислав ✚
смогу ли я
Ростислав ✚
спросил чтобы сложность узнать
Ростислав ✚
Ребята кто-то может кинуть хороший источник для изучения canvas?
Deleted
Про расширения не скажу
Но сайт защищается просто
Включается CSP политика без script-src unsafe-eval
Viktor
будет сложно
Viktor
поставил саблайм, он вообще скрывает в три точки этот кусов текста )))
Viktor
VS CODE оставляет пустое пространство
Ростислав ✚
Спасибо)
Viktor
Slafko
Deleted
как на счет автоматической проверки?
или собираешься каждый файл просматривать?
Viktor
я кажись нашел плагин
Viktor
да, оно как будто устарело)
https://marketplace.visualstudio.com/items?itemName=ShaneRay.InvisibleCharacterVisualizer
Viktor
Alexander
Помогите пожалуйста таск такой:
1) у меня есть Sortable Widget на Jquery, когда я перетаскиваю элемент списка мне нужно, чтобы на его месте появлялась рамка начального местоположения. У меня при перет
Viktor
есть Sublime Gremlins, но не понятно, как оно работает
Viktor
Viktor
какие классы и элементы фигурируют при перетаскивании в отладчике
Viktor
обычно на месте старого элемента должен появиться пустой элемент-заместитель
Viktor
декорируй его через стили
Viktor
в консоли хрома в HTML должно это отображаться все
Viktor
мои глаза :)
Vitaliy
ребята, кто-то юзает https://element.eleme.io/#/en-US/component/datetime-picker ?
Nikita
Nikita
Если берёшь дейтпикер – проверяй, как он выглядит на мобильниках. Этот на них выглядят откровенно погано.
Vitaliy
Nikita
Можно костылями обложить, впрочем.
Nikita
Vitaliy
оно не вызывает события change
Nikita
На мобильном дейтпикер должен выглядеть так
MVD
Как число окргулить до 2 знаков?
2.323 => 2.32
3.7002 => 3.7
4.0009 => 4
𝕊𝕒𝕚𝕟𝕥𝔻𝕖𝕧𝕚𝕝
MVD
Evgeniy 🍀
vitshev
В общем есть вопрос как кто делает отдельную версию мобилки сайта на реакте:
На текущий момент есть окологотовая версия десктопа и дальше ситуации:
1. html мобилки и десктопа для одного компонента отличается незначительно логикая идентичная
2. html отличается значительно при этом логика например работы со стором одинаковая, префетч данных одинаковый, какие-то события подгрузки данных тоже идентичные
3. html отличается значительно, логика тоже
и допустим у нас на уровне вебпака определена переменная IS_MOBILE как для каждого случая вы поступаете?
Пример ответа №1:
1. Прям в конкретном компоненте в render:
`
render() {
if (IS_MOBILE) {....} else {...}
}
2. Выносим рендеры в другие файлы, логика остается в текущем
index.js
let render = null;
if (IS_MOBILE) {
render = require('./mobile').default;
} else {
render = require('./desktop').default;
}
render() {
render = render.bind(this);
return render();
}
desktop.js
import './style.scss';
export default function render() {...}
mobile.js
import './mobile-style.scss';
export default function render() {...}
3. Делаем полностью отдельные компоненты <SomeComponent> и <MobileSomeCompoent>
————————————————————————————————
Пример ответа №2:
Копируем проект и полностью беззаботно переделываем что надо под мобилку, баги потом правим в двух версиях проекта, схожие фичи потом тоже дубликатим
————————————————————————————————-
Пример ответа №3:
Создаете 3 папочки: desktop, mobile, common
В common храните общие компоненты, логику и тд
В desktop и mobile хранятся специфические компоаненты и логи для платформы + верстка для каждой платформы
————————————————————————————————-
Ваш вариант ответа (неудачные решения из своей практики тоже можно и что было плохо и чем выстрелили себе в ногу)
Если это отдельная версия, то и собирай отдельный бандл
vitshev
Вариант с 3 папками классика
Дмитрий
№1 плохо тем, что куча логики if (IS_MOBILE) в текущем коде, всегда достаточно разные решения, где-то отельные компоненты, где-то внутри текущего изменения, непрозрачная логика, раздутый бандл для обоих версий, потому что постоянно следить за оборачиванием импортов жуткий гемор
№2 плохо сложностью правок и внесения нового функционала
№3 плохо тем, что сейчас придется очень сильно и много рефакторить, выстрелы в ногу будут постоянными, много копипасты по логике
Сам больше склоняюсь к варианту №1
Дмитрий
ну а бандлы коненчо разные
Дмитрий
1 - SSR
2 - хотя бы немного уменьшить размер бандлов для каждого типа устройства
vitshev
Кажется это не существенно вообще, когда ты будешь тонуть в море ифов
vitshev
И ломать логику сразу для десктопа и мобилы)
vitshev
Если сайт большой и много логики, отдельные версии лучший вариант
Дмитрий
не ну сервер то ничего не знает о разрешении, так что бандлы все равно делятся) а размер действительно не очень существенен)
Дмитрий
vitshev
3
vitshev
Вот тогда отдельные бандлы точно будут иметь смысл что для клиента, что для ssr. И сможешь независимо выкатывать десктоп и мобильный сайт
Дмитрий
что на счет логики в варианте 3? например логика работы со стором одинаковая, префетч данных одинаковый, какие-то события подгрузки данных тоже идентичные, рендер отличается полностью, делаем соответственно два компонента, логику пытаемся переиспользовать? или просто копипастим?
Если пытаемся переиспользовать, то будет очень похоже на пункт 2 из варианта 1
vitshev
Выносишь на common уровень все редьюсеры и экшены, или что там)
Дмитрий
ну это да, но есть еще некоторое количество функций на уровне компонента, например подстановка get параметров в урл в зависимости от выбраных фильтров и всякое похожее, с ней как быть?
vitshev
Ну по идее такие вещи должны быть максимально абстрагированными, чтобы их точно можно было внести на common уровень