Как вообще такое может быть, когда у кого-то работает, а у кого-то нетПомимо кода есть ещё данные, которые у всех разные и браузерные расширения, которые вообще адский ад. Один и тот же код может прекрасно работать с одними данными и падать на других. Простой пример - функция деления двух чисел, в которую в качестве делителя передали 0.
Как дебажить такое?Дебагером.
И как ловитьОтвет на этот вопрос зависит от того, что вы узнаете в процессе отладки. От причины ошибки, проще говоря.
проблема в итоге в библиотеке?Библиотеку вызывает ваш код и с вероятностью 99% проблема именно в нём. То, что "ошибка вылезает" на уровне Backbone, вовсе не значит, что она там же и зарождается. Этой библиотеке много лет, она используется на тысячах проектов и если бы там был какой-то серьёзный баг, его бы уже, скорее всего, отловили.
Chrome automatically displays the banner when your app meets the following criteria:
- Has a web app manifest file with:
- a short_name (used on the home screen)
- a name (used in the banner)
- a 144x144 png icon (the icon declarations must include a mime type of image/png)
- a start_url that loads
- Has a service worker registered on your site.
- Is served over HTTPS (a requirement for using service worker).
- Is visited at least twice, with at least five minutes between visits.
Что будет использовать оптимальнее, join или дублирование поля из №2 в №1Нужно проверить оба варианта на живой базе, только тогда вы получите приближенный к реальности ответ, потому что оптимизатор БД может сделать всё, что угодно, в зависимости от текущего состояния.
Ну и является ли дублирование полей дичью, или такой подход можно использовать?Денормализация
@mixin someName {
prop: value;
&::after {
prop: value;
}
}
.some-class {
@include someName;
}
styles.bada55c0ffee.css, оно устраняет эту проблему. Да, его чуть сложнее реализовать, но ненамного и эти усилия окупятся.
Процесс загрузки HTML-документа, условно, состоит из трёх стадий:
- DOMContentLoaded – браузер полностью загрузил HTML, и построил DOM-дерево.
- load – браузер загрузил все ресурсы.
- beforeunload/unload – уход со страницы.
Все эти стадии очень важны. На каждую можно повесить обработчик, чтобы совершить полезные действия:
- DOMContentLoaded – означает, что все DOM-элементы разметки уже созданы, можно их искать, вешать обработчики, создавать интерфейс, но при этом, возможно, ещё не догрузились какие-то картинки или стили.
- load – страница и все ресурсы загружены, используется редко, обычно нет нужды ждать этого момента.
- beforeunload/unload – можно проверить, сохранил ли посетитель изменения, уточнить, действительно ли он хочет покинуть страницу.
h1 {
flex-basis: 100%;
width: 100%; // может сработать и без этого, но иногда приходится ставить ширину явно
}
.hidden
display: none
strong, b
font-family: "RobotoBold", sans-serif