<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Глобальная обработка ошибок в JavaScript

Глобальная обработка ошибок в JavaScript

При написании кода на любом языке программирования никогда не получается обходиться без ошибок, даже если программа протестирована уже в сотый раз. И язык JavaScript тоже не исключение. Ошибки не перехваченные в коде программы, могут остановить выполнение остальных скриптов на странице. Но так как ошибка находится на стороне браузера пользователя, ее не получится увидеть, если не использовать специальных механизмов отслеживания клиентских ошибок и сохранения их на сервере.

Далее, мы рассмотрим пример установки глобального обработчика ошибок на странице, который будет отсылать информацию об ошибке на сервер.

Итак, код обработчика:


let hasLoggedOnce = false;

// Некоторые браузеры не сообщают номера строк и столбцов
// когда событие обрабатывается с помощью window.addEventListener('error', fn). Вот почему
// более надежным подходом является установка прослушивателя событий с помощью прямого назначения обработчика.
window.onerror = function (eventOrMessage, url, lineNumber, colNumber, error) {
    if (hasLoggedOnce || !eventOrMessage) {
        // Не имеет смысла сообщать об ошибке, если:
        // 1. уже сообщалось о другой ошибке - страница находится в недопустимом состоянии и может выдавать слишком много ошибок.
        // 2. предоставленная информация не имеет смысла (нет события или сообщения - браузер по какой-то причине не предоставил информацию).
        return;
    }

    hasLoggedOnce = true;
    if (typeof eventOrMessage !== 'string') {
        error = eventOrMessage.error;
        url = eventOrMessage.filename || eventOrMessage.fileName;
        lineNumber = eventOrMessage.lineno || eventOrMessage.lineNumber;
        colNumber = eventOrMessage.colno || eventOrMessage.columnNumber;
        eventOrMessage = eventOrMessage.message || eventOrMessage.name || error.message || error.name;
    }

    if (error && error.stack) {
        eventOrMessage = [eventOrMessage, '; Stack: ', error.stack, '.'].join('');
    }

    const jsFile = (/[^/]+\.js/i.exec(url || '') || [])[0] || 'inlineScriptOrDynamicEvalCode';
    let stack = [eventOrMessage, 'Ошибка появилась ', jsFile, ':', lineNumber || '?', ':', colNumber || '?'].join('');

    // немного сокращаем сообщение, чтобы оно с большей вероятностью соответствовало ограничению длины URL-адреса браузера (которое в некоторых браузерах составляет 2083 символа).
    stack = stack.replace(/https?\:\/\/[^/]+/gi, '');
    // вызов обработчика на стороне сервера, который, должен зарегистрировать ошибку в базе данных или файле журнала
    // заставляем браузер отправить информацию на сервер посредством загрузки изображения размером 1x1
    new Image().src = '/clientError?stack=' + encodeURIComponent(stack);

    // window.ENVIRONMENT_DEV - настраиваемое свойство, которому может быть присвоено значение true где-либо еще для целей отладки и тестирования
    if (window.ENVIRONMENT_DEV) {
        alert('Клиентская ошибка: ' + stack);
    }
}


Таким образом, мы создали обработчик клиентских ошибок и логирования их на сервер.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.