Javascript урок 8. часть 1. объектная модель документа (javascript dom) и доступ к объектам

Реализация

AMP-страницы со структурированными данными

AMP-страницы со структурированными данными могут появляться в карусели статей.
Если структурированных данных нет, то в результатах Google Поиска будет только обычная ссылка на страницу.
Подробнее…

Как создать AMP-страницу со структурированными данными

  1. Выполните инструкции из спецификации проекта AMP.
  2. Выполните , чтобы страница была доступна для сканирования Google.
  3. Добавьте на страницу с описанием статьи.
  4. Протестируйте структурированные данные с помощью инструмента проверки расширенных результатов.

Обычные страницы со структурированными данными

Размещая структурированные данные на обычной странице, вы можете более явно указать роботу Google на нужный заголовок, дату публикации и изображение, которое следует показывать в результатах поиска.

Как добавить структурированные данные на обычную страницу со статьей

  1. Добавьте на страницу с описанием статьи.
  2. Чтобы страница была доступна для сканирования Google, выполните
    .
  3. Протестируйте структурированные данные с помощью инструмента проверки расширенных результатов.

Объекты и свойства

В JavaScript объект имеет свойства, ассоциированные с ним. Свойство объекта можно понимать как переменную, закреплённую за объектом. Свойства объекта в сущности являются теми же самыми переменными JavaScript, за тем исключением, что они закреплены за объектом. Свойства объекта определяют его характеристики. Получить доступ к свойству объекта можно с помощью точечной записи:

Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства являются чувствительными к регистру. Вы можете определить свойство указав его значение. Например, давайте создадим объект и определим его свойства , , и следующим образом:

Неопределённые свойства объекта являются (а не ).

Свойства объектов JavaScript также могут быть доступны или заданы с использованием скобочной записи (более подробно см. property accessors). Объекты иногда называются ассоциативными массивами, поскольку каждое свойство связано со строковым значением, которое можно использовать для доступа к нему. Так, например, вы можете получить доступ к свойствам объекта следующим образом:

Имена свойств объекта могут быть строками JavaScript, или тем, что может быть сконвертировано в строку, включая пустую строку. Как бы то ни было, доступ к любому имени свойства, которое содержит невалидный JavaScript идентификатор (например, имя свойства содержит в себе пробел и тире или начинается с цифры), может быть получен с использованием квадратных скобок. Этот способ записи также полезен, когда имена свойств должны быть динамически определены (когда имя свойства не определено до момента исполнения). Примеры далее:

Обратите внимание, что все ключи с квадратными скобками преобразуются в тип String, поскольку объекты в JavaScript могут иметь в качестве ключа только тип String. Например, в приведённом выше коде, когда ключ добавляется в , JavaScript вызывает метод и использует эту результирующую строку в качестве нового ключа

Вы также можете получить доступ к свойствам, используя значение строки, которое хранится в переменной:

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

Так что если вызвать эту функцию вот так то получим результат:

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.

  • Ознакомьтесь со и проверьте, всё ли у вас правильно.
  • Если мы вручную приняли меры в отношении страницы, недопустимые структурированные данные на ней будут игнорироваться до тех пор, пока вы не исправите код. При этом сама страница может появляться в результатах поиска и дальше. Чтобы устранить , воспользуйтесь отчетом о мерах, принятых вручную.
  • Ещё раз изучите , чтобы выяснить, соответствует ли им ваш контент.
  • Узнайте, что может стоять за .
  • Мы собрали на отдельной странице ответы на часто задаваемые вопросы о сканировании и индексировании.
  • Вы можете участвовать в консультационных видеовстречах, которые организует Центр Google Поиска.
  • В случае необходимости задавайте вопросы на форуме Центра Google Поиска.

Примеры

Ниже представлен пример кода JSON-LD на AMP-странице, использующей структурированные данные .

<html amp>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://google.com/article"
      },
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "http://example.com/profile/johndoe123"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Google",
        "logo": {
          "@type": "ImageObject",
          "url": "https://google.com/logo.jpg"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Ниже приведен пример кода обычной страницы со структурированными данными .
Рекомендации по разметке обычных и AMP-страниц различаются.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": [{
          "@type": "Person",
          "name": "Jane Doe",
          "url": "http://example.com/profile/janedoe123"
        },{
          "@type": "Person",
          "name": "John Doe",
          "url": "http://example.com/profile/johndoe123"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Разметка Schema.org для YMYL-сайтов

Большинство коммерческих сайтов можно отнести к категории YMYL — «Your Money or Your Life», проектам, затрагивающими финансовое благополучие или здоровье пользователя.

Для таких сайтов важны факторы E-A-T — экспертность, авторитетность и достоверность. Подробно мы разбирали их в статье «».

Экспертность среди прочих способов можно подтвердить с помощью подписей авторов и экспертов к статьям

С помощью разметки Schema.org можно обратить внимание поискового бота на автора контента, эксперта-рецензента и выделить авторитетные источники

Что заполнять в разметке Schema.org для YMYL-сайтов

  • эксперты и сотрудники — Person, автор статьи — свойство Author;
  • эксперты-рецензенты, которые проверяли материал — reviewedBy;
  • цитаты со ссылками на авторитетные источники — citation;
  • предмет обсуждения — SameAs.

Если у нескольких объектов одинаковые названия или имена, разметка SameAs позволяет обозначить, о чем именно речь. К примеру, в SameAs можно указать ссылку на страницу Википедии о Майкле Джексоне или о другом Майкле Джексоне, чтобы помочь боту определить релевантность.

К медицинским материалам подход особо строгий. Для них есть отдельная разметка Schema.org/MedicalEntity.

Как показать ботам больше контента

Релевантный текст хорошо бы показывать ботам, особенно если количества символов не хватает, а увидеть статистику хочется. Некоторый важный релевантный текст может быть виден только пользователям, к примеру, если он написан на рисунке. Можно продублировать его для ботов в поле с текстом, но тогда пользователи увидят контент два раза. Выйти из ситуации можно с помощью машиночитаемой информации, которая доступна ботам, но скрыта от читателей. Используйте тег meta с атрибутом content.

К примеру, тема материала для роботов:

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

Зачем использовать Schema.org

Само по себе наличие разметки на страницах не входит в факторы ранжирования Google или Яндекс, но у нее другое назначение. Разметка сигнализирует поисковым системам о том, какой контент содержится на странице, так что помогает им обрабатывать контент.

Для сайтов в тематике YMYL, «Your Money or Your Life», затрагивающими финансы и здоровье, разметка позволяет указать поисковым ботам на то, что контент написан экспертами, а значит заслуживает больше внимания и доверия.

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

Рецепты со сниппетами в выдаче Google

Удаление разметки чревато потерей кликов и трафика. Брайан Фрайслебен в блоге SEO INSIGHTS рассказал о сайте с рецептами, на котором случайно удалили разметку. После этого пропали расширенные сниппеты, как следствие, кликабельность в мобильной выдаче снизилась на 51%, упал трафик.

Страницы с рецептами пропали из карусели, это повлияло на среднюю позицию.

Этот случай — наглядный пример того, что разметкой пренебрегать не стоит.

Даже если страница не попала в карусель, благодаря разметке у нее будет красивый сниппет в выдаче:

Сниппет с рецептомФрагмент разметки Schema.org для рецепта

Также разметка позволяет подключить отчеты по контенту в Яндекс.Метрике, о них подробнее.

Объектный литерал

Объектный литерал – это список разделенных запятыми свойств (пар «имя: значение»), заключенный в фигурные скобки . Имя свойства отделяется от значения двоеточием. Именем свойства может быть идентификатор или строковый литерал (допускается использовать пустую строку). Значением свойства, как отмечалось выше, может быть любое выражение JavaScript.

Ниже приводится несколько примеров создания объектов:

Создание объектов с помощью {}

JavaScript знает, что имена свойств (ключи) всегда строковые, поэтому кавычки вокруг имени свойства в литерале объекта указывать не обязательно. В этом случае имена свойств должны соответствовать тем же правилам, что и имена переменных: например, в них не должно быть пробелов, дефисов или знаков пунктуации. Если в качестве имени выступает зарезервированное слово JavaScript – его требуется брать кавычки. В ECMAScript 5 допускается использовать зарезервированные слова в качестве имен свойств без кавычек.

Записи cat и cat.name идентичны, но квадратные скобки позволяют использовать в качестве имени свойства любую строку.

Примеры

Ниже представлен пример кода JSON-LD на AMP-странице, использующей структурированные данные .

<html amp>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://google.com/article"
      },
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "http://example.com/profile/johndoe123"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Google",
        "logo": {
          "@type": "ImageObject",
          "url": "https://google.com/logo.jpg"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Ниже приведен пример кода обычной страницы со структурированными данными .
Рекомендации по разметке обычных и AMP-страниц различаются.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": [{
          "@type": "Person",
          "name": "Jane Doe",
          "url": "http://example.com/profile/janedoe123"
        },{
          "@type": "Person",
          "name": "John Doe",
          "url": "http://example.com/profile/johndoe123"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Определение методов

Метод – это свойство объекта, значением которого является функция. Методы определяются так же, как и обычные функции, за тем исключением, что они присваиваются свойству объекта. Вызов метода осуществляется точно также, как и вызов обычной функции – с помощью оператора вызова :

Выполнить код »
Скрыть результаты

Методы объектов можно добавлять и удалять в любой момент, точно также как вы поступаете с обычными свойствами объектов:

Выполнить код »
Скрыть результаты

Для доступа к свойствам объекта внутри метода используется ключевое слово this. Использование this позволяет ссылаться на объект, к которому принадлежит метод:

Выполнить код »
Скрыть результаты

Здесь вместо this внутри функции (метода) greeting можно было бы обратиться к объекту, используя переменную person (сам объект):

Ключевое слово this

В предыдущем примере мы определили функцию внутри свойства greeting во время определения объекта person. Однако, мы можем определить сначала функцию, а затем закрепить ее за свойством person.fun. В таком случае поведение this не изменится:

Выполнить код »
Скрыть результаты

Эти примеры показывают, что на поведение this совсем не влияет то, где была определена функция, а имеет значение только то, что функция была вызвана из свойства объекта.

Через ключевое слово this метод может получить доступ не только к любому свойству объекта, но и передать куда-нибудь ссылку на сам объект:

Выполнить код »
Скрыть результаты

Известно, что каждый объект содержит ссылку на свой объект-прототип. Если метод находится где-то в цепочке прототипов, то this ссылается на объект, на котором был вызван метод, т.е. как будто этот метод является методом самого объекта, а не прототипа.

Выполнить код »
Скрыть результаты

В этом примере объект person, не имеет собственного свойства (метода) fullName, а наследует это свойство от своего прототипа prototypeObject. Поскольку поиск свойства начался с person.fullName, то this внутри функции fullName будет ссылаться на объект person. Таким образом, если fullName вызывается как метод объекта person, то и this относится к person. Это очень важная особеность прототипного наследования JavaScript.

Implementation

AMP with structured data

AMP pages that have structured data can appear in a carousel of stories in search results.
Without structured data, AMP pages may only appear as standard blue links in Google Search results.
For more information about AMP in search results, see
About AMP on Google Search.

To create an AMP page with structured data:

  1. Follow the AMP Project
    specifications.
  2. Follow the to ensure that
    Google can crawl your page.
  3. Add a describing the article on the page.
  4. Test your structured data using the Rich Results Test.

Non-AMP page with structured data

When you add structured data to a non-AMP page, you can
better suggest the right headline, date published, and image that Google should show in Search results.

To add structured data to your non-AMP article page:

  1. Add a to your page, describing the
    article on the page.
  2. Read the to ensure that
    Google can crawl your page.
  3. Test your structured data using the Rich Results Test.

Examples

Occupation example

The following JSON-LD example shows a simple with salary estimate data:

<html>
  <head>
    <title>Software Developer, Applications</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Occupation",
      "name": "Software Developer, Applications",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "lastReviewed": "2017-07-23T14:20:00-05:00"
      },
      "description": "Develops information systems by designing, developing, and installing software solutions",
      "estimatedSalary": ,
      "occupationLocation": 
    }
    </script>
  </head>
  <body>
  </body>
</html>

Occupation Aggregation by Employer example

The following JSON-LD example shows a more complex example of
with salary estimate data:

<html>
  <head>
    <title>App/Web App Developer</title>
    <script type="application/ld+json">
    {
      "@context": "http://schema.googleapis.com/",
      "@type": "OccupationAggregationByEmployer",
      "name": "App/Web App Developer",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "lastReviewed": "2017-07-23T14:20:00-05:00"
      },
      "description": "Develops information systems by designing, developing, and installing software solutions.",
      "estimatedSalary": ,
      "occupationLocation": ,
      "hiringOrganization": {
        "@type": "Organization",
        "name": "Google LLC"
      },
      "sampleSize":1000,
      "industry": "Technology",
      "jobBenefits": "6 weeks paid vacation every year",
      "yearsExperienceMin": 3,
      "yearsExperienceMax": 7
    }
    </script>
  </head>
  <body>
  </body>
</html>

How to add structured data

Structured data is a standardized format for providing information about a page and classifying the page
content. If you’re new to structured data, you can learn more about
how structured data works.

Here’s an overview of how to build, test, and release structured data. For a step-by-step guide
on how to add structured data to a web page, check out the
structured
data codelab.

  1. Add the . Based on the
    format you’re using, learn where to .
  2. Follow the .
  3. Validate your code using the
    Rich Results Test.
  4. Deploy a few pages that include your structured data and use the URL Inspection tool to test how Google sees the page. Be sure that your page is
    accessible to Google and not blocked by a robots.txt file, the tag, or
    login requirements. If the page looks okay, you can
    ask Google to
    recrawl your URLs.
  5. To keep Google informed of future changes, we recommend that you
    submit a
    sitemap. You can automate this with the
    Search Console Sitemap
    API.

Как добавлять структурированные данные

Структурированные данные – стандартизированный формат, используемый для представления сведений о странице и классификации ее контента. Подробнее о принципах работы структурированных данных…

Ниже в общих чертах описано, как создать, проверить и добавить на сайт структурированные данные. Пошаговые инструкции вы найдете в этой практической работе.

  1. Добавьте . Узнайте, выбранного вами формата.
  2. Следуйте .
  3. Протестируйте свой код с помощью инструмента проверки расширенных результатов.
  4. Опубликуйте страницу и с помощью инструмента проверки URL посмотрите, как она выглядит в результатах поиска Google. Убедитесь, что доступ Google к странице не заблокирован файлом robots.txt или метатегом и для доступа к странице не требуется авторизация. Если все в порядке, запросите повторное сканирование ваших URL.
  5. Отправляйте нам файл Sitemap, чтобы информировать нас об изменениях на сайте. Отправку такого файла можно автоматизировать с помощью Search Console Sitemap API.

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.

  • Ознакомьтесь со и проверьте, всё ли у вас правильно.
  • Если мы вручную приняли меры в отношении страницы, недопустимые структурированные данные на ней будут игнорироваться до тех пор, пока вы не исправите код. При этом сама страница может появляться в результатах поиска и дальше. Чтобы устранить , воспользуйтесь отчетом о мерах, принятых вручную.
  • Ещё раз изучите , чтобы выяснить, соответствует ли им ваш контент.
  • Узнайте, что может стоять за .
  • Мы собрали на отдельной странице ответы на часто задаваемые вопросы о сканировании и индексировании.
  • Вы можете участвовать в консультационных видеовстречах, которые организует Центр Google Поиска.
  • В случае необходимости задавайте вопросы на форуме Центра Google Поиска.

nodeValue/data: содержимое текстового узла

Свойство есть только у узлов-элементов.

У других типов узлов, в частности, у текстовых, есть свои аналоги: свойства и . Эти свойства очень похожи при использовании, есть лишь небольшие различия в спецификации. Мы будем использовать , потому что оно короче.

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

Мы можем представить, для чего нам может понадобиться читать или изменять текстовый узел, но комментарии?

Иногда их используют для вставки информации и инструкций шаблонизатора в HTML, как в примере ниже:

…Затем JavaScript может прочитать это из свойства и обработать инструкции.

Правила

Структурированные данные для Google Поиска должны соответствовать требованиям, описанным в перечисленных ниже документах.

  • Рекомендации для веб-мастеров
  • Общие рекомендации по использованию структурированных данных
  • Требования для метаданных AMP-историй (если применимо)

Технические требования

Если вы предлагаете контент только тем пользователям, которые оформили подписку или зарегистрировались на сайте, советуем добавить структурированные данные для подписки и платного контента.
Для контента, состоящего из нескольких частей, важно правильно задать каноническую страницу: атрибут должен указывать или на отдельные страницы, или на страницу с полным контентом (а не на первую страницу серии). Подробнее о нормализации…. Приведенная ниже информация относится к любым AMP-страницам, включая AMP-статьи

Приведенная ниже информация относится к любым AMP-страницам, включая AMP-статьи.

  • Допускаются только файлы форматов, совместимых с .
  • Анимированные изображения не поддерживаются.
  • Графическая часть логотипа должна быть четко различима на фоне страницы.

Приведенные ниже инструкции относятся только к логотипам стандартных AMP-страниц. К логотипам AMP-историй .

  • Логотип должен иметь прямоугольную, а не квадратную форму.
  • Логотип должен вписываться в прямоугольник размером 60 × 600 пикселей и при этом иметь высоту 60 пикселей (рекомендуется) или ширину 600 пикселей. Например, логотип с параметрами 450 × 45 пикселей не будет отвечать нашим требованиям, хотя помещается в прямоугольник формата 600 × 60 пикселей.
  • Издатели должны использовать только один логотип для каждого бренда, который будет одинаково выглядеть на всех стандартных AMP-страницах.
  • Необходимо выбрать полный логотип или словесный товарный знак (не значок).
  • Текст в логотипе может быть не более 48 пикселей в высоту и должен быть вписан в поле высотой 60 пикселей так, чтобы отступы от верхнего и нижнего края были одинаковыми. Чтобы получить нужную высоту, добавьте поля вокруг логотипа.
  • Изображение (текст) логотипа с однотонным фоном должно быть окружено полями размером не менее 6 пикселей.

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.

  • Ознакомьтесь со и проверьте, всё ли у вас правильно.
  • Если мы вручную приняли меры в отношении страницы, недопустимые структурированные данные на ней будут игнорироваться до тех пор, пока вы не исправите код. При этом сама страница может появляться в результатах поиска и дальше. Чтобы устранить , воспользуйтесь отчетом о мерах, принятых вручную.
  • Ещё раз изучите , чтобы выяснить, соответствует ли им ваш контент.
  • Узнайте, что может стоять за .
  • Мы собрали на отдельной странице ответы на часто задаваемые вопросы о сканировании и индексировании.
  • Вы можете участвовать в консультационных видеовстречах, которые организует Центр Google Поиска.
  • В случае необходимости задавайте вопросы на форуме Центра Google Поиска.

Примеры методов

Для начала давайте научим нашего пользователя здороваться:

Здесь мы просто использовали Function Expression (функциональное выражение), чтобы создать функцию для приветствия, и присвоили её свойству нашего объекта.

Затем мы вызвали её. Теперь пользователь может говорить!

Функцию, которая является свойством объекта, называют методом этого объекта.

Итак, мы получили метод объекта .

Конечно, мы могли бы заранее объявить функцию и использовать её в качестве метода, примерно так:

Объектно-ориентированное программирование

Когда мы пишем наш код, используя объекты для представления сущностей реального мира, – это называется объектно-ориентированное программирование или сокращённо: «ООП».

ООП является большой предметной областью и интересной наукой само по себе. Как выбрать правильные сущности? Как организовать взаимодействие между ними? Это – создание архитектуры, и есть хорошие книги по этой теме, такие как «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» авторов Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес или «Объектно-ориентированный анализ и проектирование с примерами приложений» Гради Буча, а также ещё множество других книг.

Существует более короткий синтаксис для методов в литерале объекта:

Как было показано, мы можем пропустить ключевое слово и просто написать .

Нужно отметить, что эти две записи не полностью эквивалентны

Есть тонкие различия, связанные с наследованием объектов (что будет рассмотрено позже), но на данном этапе изучения это неважно. В большинстве случаев сокращённый синтаксис предпочтителен

Guidelines

You must follow the general structured data
and . In
addition, the following guidelines apply to structured data:

Technical guidelines

  • structured data is standalone data. It does not need to
    be associated with any other structured data that you provide to Google.
  • Add only a single or
    to
    a web page. Don’t add more than one of these type definitions per page.
  • Make sure your structured data is consistent with what you show on the page. Here are some examples:
    • You only show the median salary on your page to users, and your structured data only includes those values.
    • You round your yearly salary to the nearest five-thousandth on your page, and you provide
      the same granularity in the structured data.
  • Only specify properties once in a definition, unless otherwise specified.
  • For occupations with different characteristics based on location (for example, the
    salary range in the US Northeast might be different than one for the Mid-West), create
    separate web page, each with its own definition that specifies a different
    .
  • Don’t add salary estimate structured data to listing pages (pages that show a list of
    occupations).
  • When your pages change, update your sitemaps on a daily basis.

Content guidelines

  • Group similar occupation titles when all jobs have similar salary ranges and descriptions.
    Occupation titles must be specific, but not too specific that it becomes confusing. Here
    are some examples:
    • Don’t be too broad:

      Not recommended: «Clinical, Counseling, and School Psychologists»

      Recommended: «School Counselor», «Clinical Psychologist»,
      «Clinical Therapist», «Doctor of Psychology»

    • Don’t be too specific:

      Not recommended: «Home Health Registered Nurse» and
      «Registered Nurse (RN)» and «RN — Registered Nurse — Home Health — Travel Nurse»

      Recommended: «Registered Nurse»

Examples

Here’s an example of JSON-LD code on an AMP page with structured data.

<html amp>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://google.com/article"
      },
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "http://example.com/profile/johndoe123"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Google",
        "logo": {
          "@type": "ImageObject",
          "url": "https://google.com/logo.jpg"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Here’s an example of a non-AMP page with structured data.
Non-AMP pages have different recommendations than AMP pages.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": [{
          "@type": "Person",
          "name": "Jane Doe",
          "url": "http://example.com/profile/janedoe123"
        },{
          "@type": "Person",
          "name": "John Doe",
          "url": "http://example.com/profile/johndoe123"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Прокручиваемые списки

По умолчанию с помощью тега <select> создается раскрывающийся список, в котором изначально видно только одно значение. Для создания прокручиваемого списка укажите число видимых строк, введя соответствующее значение атрибута size. Если количество элементов списка превышает значение, указанное в атрибуте size, справа появляется полоса прокрутки. Несмотря на то, что атрибут size позволяет отобразить сразу несколько пунктов списка, посетитель может выбрать из списка по-прежнему только один пункт.
Чтобы посетитель мог выбрать из списка одновременно несколько элементов (с помощью клавиши Shift или Ctrl), нужно использовать атрибут multiple. Как и в случае с раскрывающимся списком, указав в элементе <option> атрибут selected, вы сделаете его значением по умолчанию. Если для тега <select> или для <option> установить уже известный вам атрибут disabled, то в первом случае становится отключенным весь список, а во втором — только отдельный пункт списка.
Пример прокручиваемого списка, в котором выбраны сразу несколько элементов:

Тестирование структурированных данных Google

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

Инструмент проверки структурированных данных

Инструмент проверки структурированных данных – это самый простой способ проверить ваш сайт на наличие ошибок или предупреждений. Здесь вы можете указать URL-адрес веб-сайта или объекта контента, который хотите проверить. Даже вы можете вставить код, который вы добавили на веб-страницу, для реализации структурированных данных.

После того, как вы ввели URL-адрес, нажмите RUN TEST. Репост будет отображаться следующим образом

Он покажет общее количество проверенных объектов, а также ошибки и предупреждения, если таковые имеются.

Консоль поиска Google

Консоль поиска Google позволяет вам проверять статус индексации вашего сайта и оптимизировать его. Он показывает отчет не только за текущий день, но и за прошедшее время.

Тег: nodeName и tagName

Получив DOM-узел, мы можем узнать имя его тега из свойств и :

Например:

Есть ли какая-то разница между и ?

Да, она отражена в названиях свойств, но не очевидна.

  • Свойство есть только у элементов .
  • Свойство определено для любых узлов :
    • для элементов оно равно .
    • для остальных типов узлов (текст, комментарий и т.д.) оно содержит строку с типом узла.

Другими словами, свойство есть только у узлов-элементов (поскольку они происходят от класса ), а может что-то сказать о других типах узлов.

Например, сравним и на примере объекта и узла-комментария:

Если мы имеем дело только с элементами, то можно использовать или , нет разницы.

Имена тегов (кроме XHTML) всегда пишутся в верхнем регистре

В браузере существуют два режима обработки документа: HTML и XML. HTML-режим обычно используется для веб-страниц. XML-режим включается, если браузер получает XML-документ с заголовком: .

В HTML-режиме значения всегда записаны в верхнем регистре. Будет выведено вне зависимости от того, как записан тег в HTML или .

В XML-режиме регистр сохраняется «как есть». В настоящее время XML-режим применяется редко.

Свойства типа контента статьи: структурированные данные

У всех объектов статьи есть некоторые общие свойства. Они необходимы для описания структурированных данных Google статьи. Вы можете следовать приведенной ниже таблице для получения подробной информации о различных свойствах:

Свойство Описание
mainEntityOfPage Основная сущность описана на какой-то странице. Обычно это URL-адрес страницы статьи. Используется для основной статьи на странице статьи.
Заголовок Заголовок не должен превышать 110 символов.
образ URL размеченного изображения статьи. Для достижения наилучших результатов используйте изображение с высоким разрешением. Он должен быть не менее 696 пикселей в ширину.
издатель Издатель статьи
publisher.name Имя издателя
publisher.logo Логотип издателя
publisher.logo.url URL логотипа
publisher.logo.height Высота логотипа только в пикселях
publisher.logo.width Ширина логотипа только в пикселях
дата публикации Дата и время первой публикации в соответствии с форматом ISO 8601
Дата изменена Самая последняя дата и время публикации
автор Автор статьи
author.name Имя автора
описание Краткое описание статьи

Troubleshooting

If you’re having trouble implementing or debugging structured data, here are some resources that
may help you.

  • You might have an error in your structured data. Check the
    .
  • If you received a structured data manual action against your page, the structured data on
    the page will be ignored (although the page can still appear in Google Search results). To fix
    , use the Manual
    Actions report.
  • Review the again to identify if your content isn’t compliant
    with the guidelines.
  • .
  • For general questions about crawling and indexing, check the
    Google Search crawling and indexing FAQ.
  • Ask a question in the Google Search Central office hours.
  • Post a question in the Google Search Central
    forum.

Итого

Объекты – это ассоциативные массивы с рядом дополнительных возможностей.

Они хранят свойства (пары ключ-значение), где:

  • Ключи свойств должны быть строками или символами (обычно строками).
  • Значения могут быть любого типа.

Чтобы получить доступ к свойству, мы можем использовать:

  • Запись через точку: .
  • Квадратные скобки . Квадратные скобки позволяют взять ключ из переменной, например, .

Дополнительные операторы:

  • Удаление свойства: .
  • Проверка существования свойства: .
  • Перебор свойств объекта: цикл for .

То, что мы изучали в этой главе, называется «простым объектом» («plain object») или просто .

В JavaScript есть много других типов объектов:

  • для хранения упорядоченных коллекций данных,
  • для хранения информации о дате и времени,
  • для хранения информации об ошибке.
  • … и так далее.

У них есть свои особенности, которые мы изучим позже. Иногда люди говорят что-то вроде «тип данных Array» или «тип данных Date», но формально они не являются отдельными типами, а относятся к типу данных . Они лишь расширяют его различными способами.

Объекты в JavaScript очень мощные. Здесь мы только немного углубились в действительно огромную тему. Мы будем плотно работать с объектами и узнаем о них больше в следующих частях учебника.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: