dollar, из вашего же ответа одно важное улучшение я точно вынес - что лучше подготовить массив координат прямоугольников заранее (я почему то додумался только до подготовки массива элементов, а координаты получать уже в цикле). Уже небольшая, но оптимизация.
Проверку на пересечение написал методом тыка (в геометрии я жуткий нуб, но код выглядит не так, чтобы страшно):
Здесь, кстати, дополнительная проверка помимо простого пересечения: если выделение началось внутри определенного блока, то считать выделенным его нужно только в том случае, если одна из границ области выделения выходит за границы этого блока.
Прикладываю этот код на случай, если есть возможность сделать проверку проще)
tempick, проще, да задача как раз именно в ячейках) Бинарный поиск не совсем понимаю в данном контексте. Я не силён в алгоритмах, но, насколько мне известно, бинарный поиск нужен для поиска одного элемента в отсортированном массиве, что, кажется, не совсем подходит под данный кейс. Здесь так или иначе нужно пройтись циклом по всему массиву элементов (мне кажется).
Рекурсивно поместить все ноды в массив checkedKeys, как вариант. Конкретно с данной либой не работал, но логика деревьев в целом одинаковая вне зависимости от реализации)
survivor2005, не нервничайте вы так. В первом кЭйсе у вас проверка на роут. Если роут !== Logon && нет токена - редирект на Logon.
Во втором случае у вас проверка одна. Если нет токена, то редирект на Logon. В этот момент хук вызывается еще раз. У вас всё еще нет токена. Вы снова редиректите на Logon. Возможно, программирование это не ваше :(
survivor2005, не понимаю, что вы написали, но в вашем случае, если нет токена (false в условии), то идёт редирект на 'Logon'. После этого хук срабатывает снова, смотрит, что нет токена, и опять редиректит. И так бесконечно. Не понимаю, что вас не устроило в вашей первой версии, она даже по вашим словам работоспособная.
Проблема именно в overflow - когда помещаешь селект в какую-нибудь модалку, тут без телепорта не обойтись, к сожалению. Поэтому проще работать сразу с универсальным решением и телепортить всё по дефолту.
Если под вьюпортом вы подразумеваете window, то сейчас реализация именно такая (window.addEventListener('scroll', function)). И это не работает для случаев, когда элемент расположен внутри других блоков с прокруткой.
Если же вы имели ввиду что-то другое, то прошу уточнить)
survivor2005, и всё же я сомневаюсь. Проверять времени нет, но беглый поиск не дал результатов, которые бы могли подтвердить вашу теорию.
Умещайте логику в один метод и всё будет работать. К тому же, в документации есть важная ремарка, что нужно гарантировать, что в ваших хуках метод next() вызывается лишь единожды, и это правда очень важный момент. В случае с множественными методами beforeEach, next() бы вызывался несколько раз (хоть я и прекрасно понимаю вашу логику, что next() должен вызывать следующий обработчик).
Vitaly Karasik, благодарю, но интересует как раз последний, самый "модный" шаг)
Т.к. архитектура на VPS в целом ясна и ничего нового я для себя не открою, просто новый инструмент для того, что уже делал. Хотя я понимаю, что AWS позволяет сделать и это гораздо удобнее
Спасибо! Даже не ожидал такого позитивного фидбека на такой, казалось бы, тупой вопрос. Аж приятно)
S3 + Cloudfront для SPA дался относительно легко, на в первый день удалось залить и заставить работать.
Тут дело в том, что количество инструментов огромное, плюс куча сторонних фреймворков - хрен его знает, что лучше использовать в той или иной ситуации, одну задачу можно решить множеством подходом, а без знания, как правильно, это заведомо будет неоптимальное решение.
Ivan Yakushenko, да, у меня сейчас на DO вертится блог, по большому счету нет проблем, залил/забыл, раннер от гитхаба крутится, по коммиту всё пересобирает, ценник фиксированный - для бложека без гостей идеально и самое оно.
Но в облака полез, потому что хочется освоить что-то новое и всё это выглядит довольно удобным, особенно в вопросах масштабирования и скорости загрузки и прочее-прочее.
Расскажи, почему ты загорелся и почему оставил эту идею?
У меня лично парадоксальное чувство одновременного недостатка и переизбытка информации, от которого закипает мозг
Проверку на пересечение написал методом тыка (в геометрии я жуткий нуб, но код выглядит не так, чтобы страшно):
Здесь, кстати, дополнительная проверка помимо простого пересечения: если выделение началось внутри определенного блока, то считать выделенным его нужно только в том случае, если одна из границ области выделения выходит за границы этого блока.
Прикладываю этот код на случай, если есть возможность сделать проверку проще)