Web

Блог посвящен Веб разработке, HTML, CSS, Javascript, всевозможные браузерные технологии. Разработка для мобильных браузеров. HTML5, CSS3, WebGL, и другие веб технологии. SEO Поисковая оптимизация, интернет коммерция, браузерные игры, Серверные языки программирования. PHP.

Скроллинг фона в модальных окнах на Iphone

или

Prevent background body scroll in IOS

Много наслышаны про задачу запретить скроллить фон при открытых диалогах и модальных окон. Много крови попило данное решение Apple встроить собственную поддержку прокрутки. При чем от версии к версии изобретают и падают существующие решения.

Причем данная ситуация воспроизводится только на самих устройствах Iphone либо в эмуляторах. Вы не сможете воспроизвести ее в Chrome debugger emulator

Дело в том что body в большинстве своем на сайте - имеет прокрутку. т/к/ высота контента как правило занимает больше одного экрана. Следовательно - вы можете его скроллить. И исчезает ползунок для скролла с виду не сразу и пока он активен - вы сможете за него ухватиться и продолжить скроллинг, чего бы не было наложено поверх данного слоя с прокруткой.

Все думают, что повесив overlay - смогут запретить доступ к фону, а не тут то было. Apple всех перехитрил.

Читать далее →

  • Автор: kosmom
  • Просмотров: 930
  • Комментариев: 0
  • Создан: 27.04.2021 10:54

Undefined не перехватывается через watch

Сенсация! Undefined не перехватывается через watch. В javascript существует возможность отслеживать изменение значения переменной через watch, observe, listen. Всё это обернуто внутри реактивного фреймворка vue через секцию watch. Но как оказалось есть особенности:

Если вы хотите перехватывать изменение переменной в пустышку - используйте a=null

Если не хотите перехватывать изменение в пустое - значение - используйте a=undefined, либо используйте a=null и явно указывайте проверку внутри метода watch

Соблюдайте принцип: Явное лучше неявного

И не используйте undefined

Таким образом null победил со счетом 1:0

Читать далее →

  • Автор: kosmom
  • Просмотров: 745
  • Комментариев: 0
  • Создан: 26.04.2021 11:53

Полиморфное отношение к множеству одинаковых сущностей в Eloquent Laravel

У вас есть общая таблица (полиморфная) которая может хранить общие записи разных моделек.
Например у вас есть модель комментариев, которые есть у постов и у видео. И вы хотите комментарии к постам делить на обычные комментарии (одна коллекция) и премиум комментарии (другая коллекция).
Чтобы ресурс вам возвращал каждый из типов в отдельности.
По умолчанию связь идет через поля entity_id и entity_type
Через них и проходит вся магия.

Читать далее →

  • Автор: kosmom
  • Просмотров: 763
  • Комментариев: 0
  • Создан: 12.04.2021 18:09

Общая папка со скриптами на несколько версий приложения VUE

Если вы хотите красоты. Красоты в структуре приложений и коде, чтите всевозможные DRY и KISS - То наверняка задумывались о том как вынести повторяющиеся блоки с кодом во вне папки с приложением.

Допустим у вас несколько версий приложения. Мобильная, десктопная и особая версия для мобильного приложения (PWA), либо вообще Cordova и Electron. Все пользуются едиными файловыми наборами. Миксины, авторизации, константы едины.

Вы выносите папку выше папки с репозиторием и... компилятор не видит данного пути и предлагает установить зависимость через npm install

Какие варианты решения доступны?

Читать далее →

  • Автор: kosmom
  • Просмотров: 681
  • Комментариев: 0
  • Создан: 05.04.2021 15:37

Keep-alive активна ли страница

Микс поможет на случай если вы используете VUE, также используете keep-alive и у вас есть какие-то фоновые операции (watch или timeout) и вы хотите чтобы конкретная операция сработала только на активной вкладке. Другими словамы мы сделаем проверку активна ли текущий keep-alive или нет, нет ничего проще.
Так получилось, что фиксировать активность страниц базово можно только через методы. По сути остается только придать им состояние. Сделать это совсем не сложно

export default {
data() {
return {
isActivePage: false
}
},
activated() {
this.isActivePage = true
},
deactivated() {
this.isActivePage = false
},
}
Пользуйтесь

Читать далее →

  • Автор: kosmom
  • Просмотров: 659
  • Комментариев: 0
  • Создан: 31.03.2021 16:15

Создаем аналог select2 стандартными средствами vuetify

Приветствую
Разберем пример создания элемента автодополнения для vuetify 2.2 (на текущий момент). С подгрузкой данных с сервера при вводе данных пользователем
Пишу об этом, т.к. на текущий момент нет понятной инструкции по устройству данных компонентов.
Начнем с того, что в vuetify есть стандартный элемент v-autocomplete, но он работает совершенно не так как нужно. Его основное назначение позволить выбрать значение из доступных элементов или не выбрать ничего. Если вам нужно именно такое решение - используйте именно v-autocomplete
Если вы хотите сделать некий автокомплит в виде подсказок, но позволить пользователь ввести значение с клавиатуры - вам необходимо использовать v-combobox
И не спрашивайте почему их не объединили в один.
Теперь для динамической подгрузки подсказок с сервера - в стандартных средствах vuetify нет предусмотренных элементов, вам придется связывать имеющиеся свойства для достижения цели

Читать далее →

  • Автор: kosmom
  • Просмотров: 989
  • Комментариев: 0
  • Создан: 02.03.2021 15:25

Печать из браузера в один клик без подтверждения без смс и регистрации

Браузеры позволяют отправить на печать документ с предпросмотром. Это правильно, ведь в веб странице нету разметок, вам также нужно выбрать принтер и формат бумаги.
Существуют даже платные драйвера, способные выводить печать напрямую. Настолько это проблема не простая

Но когда печатать вам нужно массово и настройки вы все себе уже настроили - есть способ организовать это дело через дополнительные инструменты

Читать далее →

  • Автор: kosmom
  • Просмотров: 1258
  • Комментариев: 0
  • Создан: 11.02.2021 11:25

Продвинутый механизм файлового логирования

Приветствую тех кто повязан в вебе. Сегодня обсуждение небольшого вопроса связанного с попыткой организовать правильное файловое логирование
Очередное нестандартное решение стандартной проблемы. Кому интересны необычные подходы - прошу. Кто считает что если есть стандартные решения и нужно всегда ими пользоваться - проходите мимо.

Я буду писать в ключе PHP, но мышление применимо и к любому другому серверному языку.

Каких показателей мы хотим достигнуть?
Хочется быстро получить доступ к последним записям в логах. Хочется иметь возможность программно парсить данные, для дальнейшего анализа логов. А также хочется не вредить при этом существующим механизмам для работы с логами - утилиты tail и текстовому представлению.

Читать далее →

  • Автор: kosmom
  • Просмотров: 479
  • Комментариев: 0
  • Создан: 22.01.2021 11:30

Пишите пароль без звездочек

Есть один интересный способ скрыть пароли визуально. Вам когда-нибудь приходилось вводить пароль когда за спиной у вас стоит кто-то, либо вы опасаетесь скрытой записи экрана (но не кейлоггеров от них не поможет) и форма для ввода пароля по какой-то причине открыта визуально. То ли баг то ли фича. Некоторые скрипты содержат пароли в открытом виде и их невозможно открыть по другому.
Дело в том что некоторые символы в шрифтах очень похожи друг на друга, например большая I и маленькая l, а также ряд других палочек | и мелких черточек ,.`":.;!i который при виде издали будут сливаться в один большой баркод. Сюда же подойдут скобки фигурные квадратные и обычные ({[]}) и всё что имеет вертикальную структуру 1Jj/\
Дополнительно если хотите пойти еще дальше и чувствуете себя ниндзей - можете использовать эмодзи и спецсимволы. Главное чтобы их можно было воспроизвести в как можно большем числе систем. Учитывайте винду, мак и андройд. На клавиатурах спецсимволы вводятся через зажатый альт и код на numbar - после отжать альт

Читать далее →

  • Автор: kosmom
  • Просмотров: 381
  • Комментариев: 0
  • Создан: 15.12.2020 19:00

VUE дружим с Роутингом

С большими возможностями приходит и большая ответственность
! Человек паук

Сегодня мы разберем продвинутые техники идеального укрощения роутинга в реактивном фреймворке на примере VUE. Если вы совершаете переход от обычных страниц к реактивности - можете наткнуться на несколько камней, которые мало где описаны как можно решать правильно.
В чем же особенность роутинга в реактивных приложениях. А в том, что страница не перегружается полностью а происходит эмуляция обновления страницы, а именно изменяющейся части. Мы же реактивные, информацию в шапке и других общих частях (которая обычно располагается в папке layouts) и это здорово, потому что браузеру не нужно заново рендерить эту самую неизменную область схожую у нескольких страниц заново. А URL эмулируется либо через хеш # либо через History API

Читать далее →

  • Автор: kosmom
  • Просмотров: 436
  • Комментариев: 0
  • Создан: 14.11.2020 05:37
Иллюзия вечного хостинга Рецепт высоконагрузочной архитектуры Элегантный способ провести синхронизацию не деактивировав все записи Рекомендации правильного проектирования кода чтобы максимально избежать легаси Cvid. Первый опыт публичных сервисов Prodob.История успешного неуспеха Ресурсы GraphQl KPI, Грейды и оценки Скроллинг при возвращении назад Говорят, клик не настоящий Скроллинг фона в модальных окнах на Iphone Undefined не перехватывается через watch Полиморфное отношение к множеству одинаковых сущностей в Eloquent Laravel Общая папка со скриптами на несколько версий приложения VUE Keep-alive активна ли страница Создаем аналог select2 стандартными средствами vuetify Печать из браузера в один клик без подтверждения без смс и регистрации Продвинутый механизм файлового логирования Пишите пароль без звездочек VUE дружим с Роутингом Управление расширением через GET параметр Не шутите с html Временная зона и боль Ошибки при проектировании Избегайте исключений в английском языке при написании сущностей Пробел в начале или конце пароля Стандарты именования. Текущее положение дел Апи Прокси для хостинга на шаред хостинге Вам больше не нужны бекапы Самопис, или готовое решение? Полный аякс Фиксируемый по горизонтали заголовок страницы Загружаем сторонние скрипты асинхронно CSRF универсальный способ защиты Bootstrap snippet Резиновое отображение таблицы Соединение JS и CSS между собой Правильная Ориентация при заливке изображений JPEG Доработка для Bootstrap, используем Progressbar во всех элементах Мгновенное отображение страницы Объединяем CSS и JS файлы Open-Filemanager Правила простого кода в веб-разработке Полукеш, или Суперкеш. Простая реализация Progressbar долго открывающейся страницы PHP Fatal error: Allowed memory size of . Хватит. Давайте решим проблему 7 Методов, которые помогут сделать любую WEB страничку лучше Вычисление математических формул на PHP и Javascript Простое программирование сайтов. Суть Сокращение числа лишних переменных из HTML формы Простая реализация взаимодействия между приложениями через SOAP Простое программирование сайтов. Суть. ООП Раскрутка сайта. Инструменты продвижения Раскрутка сайта. Продвижение сайта. На простом языке Кодировка для сайта. Какую выбрать? Как сменить? Реализация качественного вывода данных. ч3. Сортировка Реализация качественного вывода данных. ч2. Постраничник Реализация качественного вывода данных. ч1. Фильтр Оптимизация работы сайта. Часть 2. Сжатие мелких изображений Оптимизация работы сайта. Часть 1. Сжатие стилей и скриптов Правильная Передача данных AJAX в веб-приложении Быстродействие. Избавляемся от Smarty Как писать правильное ТЗ. Ошибки при взаимодействии с разработчиками Упрощаем множественное вложение файлов Экономим на доменах В поисках лучшего Flash FLV Player проигрывателя видео для сайта Безопасность сайта Создаем один портал из множества проектов Как запустить сайт Что такое хороший дизайн для сайта? Нужны ли готовые CMS? Сколько стоит сайт? Веб сайты – инертны Читаем Excel 2007 (XLSX) при помощи PHP Пишем формочку обратной связи аля Reformal Заработок через Интернет. Рубль в день просто так – это много или мало? Авторизация. Запомнить меня. Как это делается? Реализация постраничника Эволюция создания ядра для сайтов Перевод статических блоков сайта средствами CSS Универсальный экспорт отчета в word и excel Ввод паролей через последовательность зажатия клавиш Теория управления компонентами из админки
Ваши предложения и пожелания пишите на pro@kosmom.ru

Теги

backup bootstrap core framework eloquent excel home project html ios javascript keep-alive kpi laravel legacy mvp orm php rip scroll timestamp undefined vue vuetify watch безопасность биометрический паспорт ваша любаша для путешествий загран на 10 лет загран паспорт загранпаспорт нового образца зимние книги как заполнить анкеты кеширование книги на новый год логирование мцф недвижимость новогодние книги образец заполнения антеты паспорт для путешествий паспорт нового поколения печать продукт проектирование прокси разработка ремонт ремонт в апартаментах ремонт нежилого помещения самокат сдача сколько стоил ремонт апартаментов спорт стандарты таблица финансы хостинг цена ремонта что почитать зимой юзабилити

Случайный пост

12.12.2014 19:47
Фильмы за неделю 17 - 23 ноября 2014 года