Void (I need you to fill the void) I wonder how I got by this week I only touched you once Lately I can’t find the beat I used to feel the rush Started with a little bit, now I don’t know to quit Always feel inadequate, the same way that my daddy did Momma told me not to try And I should’ve taken her advice Now I’m all twisted When it’s all gone I miss it I’ll try just to do something I’ll try ’cause I got nothin’ Else that gets me through the day ‘Til I find another way I’ll try just to do something I’ll try ’cause I got nothin’ Even if I lose again I won’t quit I wonder how I got by this week I only touched you once Lately I can’t find the beat I used to feel the rush Now I need you to feel to vibe I need you to see the point I need you to feel alive I need you to fill the void My insecurities are, my own worst enemy yeah Something’s not letting me Move the way I used to Thought you could better me but, then you stopped letting me walk Now you’re just setting me off So I’m tryna lose you I’ll fight just to do something I’ll fight ’cause I got nothin’ Else that gets me through the day ‘Til I find another way I’ll fight just to do something I’ll fight ’cause I got nothin’ Even if I lose again I can’t quit, mhm I wonder how I got by this week I only touched you once Lately I can’t find the beat, I used to feel the rush And now I need you to feel the vibe I need you to see the point I need you to feel alive I need you to see the point (I need you to fill the void) I need you to fill the void (I need you to fill the void) I need you to fill the void You paralyse me every time I try to find some paradise I got to fill the void Now I’m all paranoid You paralyse me every time I try to find some paradise I got to fill the void Now I’m paranoid | Пустота Мне нужно, чтобы ты увидела сквозь пустоту, Удивительно, как я пережил эту неделю, Ведь я прикоснулся к тебе лишь однажды, В последнее время я не могу найти нужный ритм, Ведь я привык чувствовать прилив сил. Начал с малого, И сейчас не знаю, как остановиться, Всегда чувствую себя неадекватно, Так же, как и мой отец раньше. Мама говорила мне даже не пробовать, И мне следовало послушать её, Ведь сейчас я сошёл с ума, И когда всё заканчивается, я скучаю по этому. Я попытаюсь что-нибудь сделать, Я попытаюсь, ведь у меня не осталось Ничего, чтобы как-то протянуть день. И пока я не найду выход, Я буду пытаться что-то сделать, Буду пытаться, ведь у меня ничего нет, И даже если я опять проиграю, Я не остановлюсь. Удивительно, как я пережил эту неделю, Ведь я прикоснулся к тебе лишь однажды, И в последнее время я не могу найти нужный ритм, Ведь я привык чувствовать прилив сил. Сейчас мне нужно, чтобы ты уловила мой настрой, Чтобы ты уловила смысл, Ты мне нужна, чтобы я почувствовал себя живым, Нужна мне, чтобы заполнить пустоту. Мои сомнения — Мои худшие враги, И что-то мешает мне Двигаться, как это было раньше. Думал, ты сделаешь меня лучше, но Затем ты просто приковала меня к месту, Сейчас же ты просто меня выводишь, Поэтому я пытаюсь отказаться от тебя. Я попытаюсь что-нибудь сделать, Я попытаюсь, ведь у меня не осталось Ничего, чтобы как-то протянуть день. И пока я не найду выход, Я буду пытаться что-то сделать, Буду пытаться, ведь у меня ничего нет, И даже если я опять проиграю, Я не остановлюсь. Удивительно, как я пережил эту неделю, Ведь я прикоснулся к тебе лишь однажды, И в последнее время я не могу найти нужный ритм, Ведь я привык чувствовать прилив сил. Сейчас мне нужно, чтобы ты уловила мой настрой, Нужна мне, чтобы понять смысл. Нужна мне, чтобы чувствовать себя живым, Нужна мне, чтобы понять смысл. Нужна мне, чтобы заполнить пустоту, Нужна мне, чтобы заполнить пустоту, Нужна мне, чтобы заполнить пустоту, Нужна мне, чтобы заполнить пустоту. Каждый раз ты вводишь меня в ступор, А я пытаюсь найти в этом что-то райское, Я должен заполнить пустоту, И я превратился в параноика. Каждый раз ты вводишь меня в ступор, А я пытаюсь найти в этом что-то райское, Я должен заполнить пустоту, И я превратился в параноика. |
что нужно знать и как оптимизировать — SEO на vc.ru
SEO-специалистам учить язык программирования JavaScript (далее — JS) вовсе не обязательно, но понимание принципов сканирования и рендеринга поможет превратить JS из помехи в союзника. Давайте разбираться, что к чему!
8912 просмотров
Речь пойдёт о технической оптимизации. Абсолютное большинство сайтов используют JS для улучшения пользовательского опыта, сбора статистики, интерактивности, загрузки контента, меню, кнопок и других элементов. Наша цель, как SEO-специалистов, облегчить процесс сканирования контента и по возможности избегать проблем, которые часто возникают при обработке страниц, использующих JavaScript.
Содержание
- Как Google обрабатывает JS?
- Краулинг.
- Обработка.
- Рендеринг.
- Индексация.
- Выводы.
Руководство частично основано на материалах от Ahrefs, Onely, Google Developers, за что им большое спасибо.
Как Google обрабатывает JS?
Поисковые системы пытаются получить тот же контент, что видят в браузере пользователи. В Google за процесс рендеринга и сканирования отвечает сервис обработки веб-страниц Web Rendering Service (WRS, часть системы индексации Caffeine). Вот упрощенная схема процесса:
Обратите внимание, на схеме Google получает конечный HTML для обработки, но на деле сканирует и кэшируют почти все дополнительные ресурсы, необходимые для формирования страницы (JS-файлы, CSS, синхронные и асинхронные запросы XHR, точки приёма API и так далее). Почему «почти» все? Некоторые из ресурсов Googlebot может игнорировать, как недостаточно важные для отображения контента.
Разберём процесс на примере отдельного URL.
1. Crawling (Краулинг)
Робот Googlebot отправляет серверу GET-запрос, в ответ получает HTTP-заголовки и содержимое страницы. Если в заголовке или мета-теге robots нет запрета на сканирование, то URL ставится в очередь на отображение. Подробнее о способах закрытия от индексации мы рассказывали в отдельном руководстве.
Важно учитывать, что в условиях mobile-first-индексации в большинстве случаев запрос поступает от мобильного user-agent Google. Проверить, какой робот сканирует ваш сайт можно в Search Console (раздел «Проверка URL»).
Нужно иметь в виду, что в HTTP-заголовках страницы можно настроить правила для отдельных user-agents, например, запретив для них индексацию или показывая отличный от других контент. Ниже пример запрета перехода по ссылкам для Googlebot и индексации для всех остальных.
HTTP/1.1 200 OK Date: Tue, 25 May 2020 21:42:43 GMT (…) X-Robots-Tag: googlebot: nofollow X-Robots-Tag: otherbot: noindex, nofollow (…)
2. Обработка
Здесь важно учитывать некоторые нюансы.
Ссылки и ресурсы
Частью обработки страницы является обнаружение и сканирование ссылок на другие URL и файлы, необходимые для построения HTML-документа. Каждая из ссылок попадает в очередь на сканирование и обладает различным приоритетом. Для подгрузки CSS- и JS-файлов используется тег <link> для внутренних и внешних ссылок — тег <a> с атрибутом href. Почему напоминаем о таких очевидных вещах? Взгляните на примеры реализации ссылок.
Хороший вариант:
<a href=”/page”>просто и правильно</a> <a href=”/page” onclick=”goTo(‘page’)”>тоже хорошо</a>
Плохой вариант, если вы, конечно, хотите, чтобы ссылки были понятны поиску:
<a>не пойдёт, нет href</a> <a href=»javascript:goTo(‘page’)»>нет ссылки</a> <a href=»javascript:void(0)»>нет ссылки</a> <span>неподходящий тег</span> <option value=»page»>неподходящий тег</option> <a href=»#»>нет ссылки</a>
Важно помнить, что ссылки, подгружаемые с помощью JavaScript, не будут обнаружены до окончания процесса рендеринга. Это значительно замедляет процесс сканирования сайта, ведь Google приходится постоянно корректировать структуру и относительную важность страниц по мере рендеринга и обнаружения новых ссылок, реализованных с помощью JS.
Кэширование
Все загружаемые файлы, включая HTML, JS и CSS активно кэшируются Google, при этом ваши настройки тайминга будут игнорироваться, а новую копию Google загрузит по своему усмотрению. Это может привести к использованию уже устаревших ресурсов JavaScript или CSS. Возможное решение — использование «цифровых отпечатков контента» в названии файлов, например, вида:
Благодаря отпечаткам, при каждом обновлении файла будет создаваться его новая копия и Google сможет использовать актуальную версию для обработки страницы.
Дублирование контента и ложные 404
Важно знать, что JS может стать причиной появления дубликатов, если уникальный контент подгружается динамически и возникли проблемы с его отображением или загрузка занимает слишком много времени. Google может увидеть только дубликаты шаблонов. Актуально для SPA-проектов, использующих использующих фреймворки Angular, React, Vue.Решение — SSR (server-side rendering), то есть рендеринг на стороне сервера. В таком случае Googlebot получит заранее отрисованный контент в исходном коде документа и проблем с его сканированием/индексацией не возникнет.
Также некоторые сайты могут использовать JavaScript для обработки ошибок и будут передавать код статуса 200 OK вместо соответствующего кода ошибки. Есть вероятность, что такие страницы ошибок будут индексироваться и показываться в результатах поиска.
3. Отрисовка (рендеринг)
Одно из опасений SEO-специалистов, что при двухэтапном рендеринге (сначала HTML — потом отрисовка с помощью JS) процесс сканирования может занимать много времени. На самом деле, медиана ожидания для рендеринга сканируемого HTML-документа, как правило, не превышает 5 секунд.
Показатель не стоит путать с популярным SEO-мифом о том, что рендерер Google ждёт полной отрисовки страниц всего 3-5 секунд.
На деле, как уверяет Джон Мюллер, тайм-аут может быть выше, а благодаря активному кэшированию ресурсов страницам не придётся каждый раз загружать CSS- и JS-файлы. Миф появился благодаря инструменту URL Inspection Tool от Google, в котором ресурсы необходимые для отображения страницы извлекаются в реальном времени, нет системы кэширования и требуется разумный лимит.
Тем не менее, чем быстрее отрисовывается страница, тем лучше. Процесс рендеринга тратит много ресурсов, а Google старается их экономить.
Процесс отрисовки это загрузка страницы в том же виде, который доступен в браузере пользователя. Со всеми элементами, реализованными с помощью JavaScript, если предыдущие правила соблюдены (нет запрета к сканированию, а файлы скриптов доступны и актуальны).
Googlebot работает на движке Chromium 74-й версии, поэтому поддерживает все возможности современных браузеров, но краулер не умеет выполнять пользовательские сценарии вроде кликов, заполнения форм и прочих взаимодействий с элементами на странице, поэтому всё, что должно попасть в индекс, обязано быть доступно сразу в DOM документа.
Если что-то подгружается с сервера по клику, то оно не будет просканировано поисковым роботом.Googlebot не умеет скроллить страницу, поэтому загружаемый визуальный размер документа отличается от привычного пользователю. Для мобильных устройств страница загружается с шириной 411px и высотой 12140px, для десктопа — 1024x9307px.
4. Индексация
Если предыдущие этапы пройдены успешно Google сможет проиндексировать контент. Самый простой способ проверить (помимо уже упомянутого URL Inspection Tool в Search Console) — ввести в поисковике часть контента, который загружается с помощью JS и, используя оператор «site:», указать анализируемый домен.
Например, на сайте бренда H&M часть контента подгружается по клику с помощью JS.
Попробуем проверить попадает ли этот текст в индекс? Увы:
В тоже время контент реализованный в рамках HTML и найденный в исходном коде документа, без труда индексируется:
Какой процент контента на JS в итоге не индексируется? У onely. com есть суровые данные для нескольких крупных сайтов известных брендов.
Такой разброс говорит о возможности, как минимум, облегчить доступ Googlebot и WRS к сканированию и рендерингу наших проектов. Несколько советов и рекомендаций.
Server-Side Rendering (SSR)
Рендеринг (отрисовка) контента на стороне сервера. В этом случае, Googlebot получает уже готовый код документа. Это значительно повышается скорость First Paint и First Contentful Paint, что важно в условиях нового фактора ранжирования Google Page Experience.
Но есть и недостаток — генерация страниц на сервере требует времени, что может привести к задержке TTFB (время до получения первого байта).
Стоит учитывать возможность и гибридного подхода — SSR для одних страниц и, например, динамический рендеринг для других. Так делает, например, Netflix.
Динамический рендеринг
Ещё одно жизнеспособное решение, официально поддерживаемое Google и позволяющие отправлять краулеру статическую версию сайта, а пользователям версию страницы с JS.
Такой способ не воспринимается как клоакинг, если контент фактически не отличается.
Динамический и серверный рендеринг важны для продвижения под Яндекс. Как увидим ниже, поисковик пока не особенно умеет в JavaScript-индексацию.
Поддерживаемые фреймворки
Вот список популярных JS-фреймворков + HTML5 и возможность индексации реализованного с помощью них контента различными поисковыми системами.
Здесь следует добавить, что робот Яндекса всё-таки может проиндексировать AJAX-версию контента, но только если есть его HTML-копия.
Проверьте доступность JS-файлов
Очевидно, у краулеров должен быть доступ к файлам, влияющим на отображение страницы. Убедитесь, что они открыты для сканирования. Самый просто способ — добавить соответствующие директивы в robots.txt. Например, для Googlebot:
User-Agent: Googlebot Allow: .js Allow: .css
Подробнее о продвинутом использовании robots.txt можно узнать в нашем руководстве.
Настройте пагинацию правильно
Постраничная навигация часто реализуется с помощью JS, но мы уже знаем, что Googlebot не умеет кликать на элементы интерфейса, поэтому необходимо настроить нумерацию с помощью ссылок <a href=»»>. Подробно о пагинации мы также рассказывали.
URL и History API
При взаимодействии с контентом, реализованным с помощью AJAX, Vue, Angular определенные состояния страницы могут изменять URL-адрес, добавляя в него hash-символ «#». Googlebot не сможет их распознать:
Для решения проблемы с хешами используется History API, появившийся вместе с HTML5. Метод позволяет привести URL к стандартному виду, но здесь придётся подробнее разобраться с темой и правильно настроить конфигурацию сервера. В основном это снова актуально для SPA-проектов (англ. single page application — одностраничное приложение), где контент подгружается полностью динамически.
Lazy Loading
Отложенная загрузка улучшает юзабилити сайта, подгружая медиа элементы только тогда, когда они понадобятся пользователю (например, при скролле). Но если функционал настроен неправильно, Googlebot может просто не увидеть необходимый нам контент. Если используете Lazy Loading, убедитесь, что всё загрузка реализовано в соответствии с требованиями Google.
Выводы
С одной стороны система рендеринга в Google (Web Rendering Service) значительно шагнула вперёд, используя последнюю версию Chrome на движке 74-й версии, что упрощает обработку сайтов с использованием JS, с другой — краулер не умеет кликать, скроллить или иначе взаимодействовать с контентом, а значит высока вероятность, что он пропустит часть важного для SEO контента.
Если у вас нет возможности или специалиста, способного выполнять все рекомендации Google по разработке, руководствуйтесь следующим правилом: всё, что хотим видеть в индексе, должно быть доступно в исходном коде документа (теги, ссылки, тексты, изображения, навигация, меню и любые другие элементы On-page). Это максимально актуально и для Яндекса.
Всем удачно проиндексироваться и пусть в поиске будет только желаемый контент!
javascript — Файл локализации для JS и PHP
спросил
Изменено 3 года, 5 месяцев назад
Просмотрено 2к раз
Я немного поискал файлы локализации, увидел, что мы можем использовать файл . po или gettext, но есть ли какой-нибудь учебник или образец уникального решения, которое будет работать как в javascript, так и в php.
Я хочу поддерживать только один файл локализации для каждого языка, который будет работать как с языками JS, так и с PHP.
Буду признателен, если кто-нибудь может указать мне на некоторые ссылки или образцы…
- php
- javascript
- локализация
Я обнаружил, что обычно это признак сомнительного дизайна, когда переводимый текст закодирован внутри функций JS . JS предназначен для реализации логики, а не контента. Контент должен предоставляться PHP (обычно с использованием механизма шаблонов) и должен использоваться JS. Таким образом, вам нужно только решение для локализации PHP.
Если (всегда случаются исключения) вам действительно нужно перевести фразу внутри подпрограммы JS, вы используете вызов ajax для получения перевода. Это также упрощает доступ к словарю, содержащему токены перевода, поскольку это снова выполняется PHP. Словарь может храниться в одном месте.
2
Да, есть. Недавно я успешно использовал gettext.js, который работает с файлами .json или .po. Таким образом, вам нужно поддерживать только один источник перевода. Веб-страница, для которой я использовал это, находится здесь, чтобы вы могли проверить, как я это сделал. Удачи!
Во-первых, по возможности постарайтесь избегать gettext. Он популярен и стабилен, но создает некоторую нагрузку на обслуживание переводов: вам нужно будет изменить исходные строки, и когда это произойдет, gettext должен будет обновить все ключи сообщений, а это может испортить существующие переводы. Подход с постоянными ключами сообщений намного проще поддерживать в долгосрочной перспективе — вам нужно будет помнить об удалении ключей, которые вы больше не используете, но это очень небольшая нагрузка.
Вы можете использовать один и тот же формат хранения переводов для PHP и JavaScript. Если вы используете подход на основе ключей, как я предлагаю, это, вероятно, будет какой-то формат на основе JSON. JSON легко доступен как в PHP, так и в JavaScript.
Существует несколько готовых библиотек JavaScript для интернационализации на основе JSON. Я являюсь разработчиком одной из таких библиотек: https://github.com/wikimedia/jquery.i18n. Его должно быть достаточно легко адаптировать к PHP.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Набухание и охрупчивание российской нержавеющей стали ЭИ-847, вызванное пустотами, в условиях окончания срока службы, соответствующих PWR
Лицензионное соглашение ASTM
ВАЖНО – ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ЭТИ УСЛОВИЯ ПЕРЕД ЗАГРУЗКОЙ ЭТОГО ДОКУМЕНТА. Загружая документ ASTM, вы заключаете договор и признаете, что у вас есть читать настоящего Лицензионного соглашения, что вы понимаете его и соглашаетесь соблюдать его условия. Если вы не согласны с условиями настоящего Лицензионного соглашения, немедленно покиньте эту страницу. без скачивание документ ASTM.
Пожалуйста, , нажмите здесь , чтобы просмотреть лицензионное соглашение для образовательных учреждений.
Собственность. Этот документ защищен авторским правом ASTM International (ASTM), 100 Барр Харбор Драйв, Западный Коншохокен, Пенсильвания, 19428-2959, США. Все права защищены. Вы (Лицензиат) не имеете прав собственности или других прав на Документ ASTM. Это не продажа; все права, право собственности и интересы в документе ASTM (как в электронном файле и печатная копия) принадлежат ASTM. Вы не можете удалять или скрывать уведомление об авторских правах или другие уведомления, содержащиеся в ASTM. Документ.
Ограниченная лицензия. ASTM предоставляет вам ограниченную лицензию без права передачи следующим образом: Право на загрузку электронного файла настоящего документа ASTM для временного хранения на одном компьютер для просмотра и/или печати одной копии документа ASTM для отдельных использовать. Ни электронный файл, ни одиночная распечатка не могут быть воспроизведены каким-либо образом. Кроме того, электронный файл не может распространяться где-либо еще по компьютерным сетям или в противном случае. То есть электронный файл нельзя отправить по электронной почте, скачать на диск, скопировать на другой жесткий диск. диск или иным образом общий доступ. Одна печатная копия может быть распространена только среди других сотрудники для их внутреннего использования в вашей организации; его нельзя копировать. Этот документ ASTM не может быть продан или перепродан, сдан в аренду, сдан в аренду, одолжен или сублицензия. Абонент будет нести ответственность за весь контроль доступа и безопасность меры, необходимые для того, чтобы IP-адреса Абонента не использовались для получать доступ к журналам, кроме авторизованных Пользователей.
ASTM International предоставляет подписчикам и авторизованным Пользователи у Абонента Авторизованы Сайт , онлайн-доступ к журналу ASTM, для которого Подписчик поддерживает текущую подписка к печатной или онлайн-версии. Этот грант распространяется только на Подписчика и таких Уполномоченных Пользователи индивидуально и не могут быть переданы или распространены на других. Для перепечатки А. журнальную статью, пожалуйста, свяжитесь со службой поддержки клиентов ASTM, 100 Barr Harbour Dr., PO Box C700, West Коншохокен, Пенсильвания 19428, тел.: 610-832-9555; факс: 610-832-9585; электронная почта: [email protected]
Проверка: ASTM имеет право проверять соблюдение настоящей Лицензии. Соглашение за свой счет и в любое время в течение обычного рабочего дня. Для этого ASTM привлечет независимого консультанта при условии соблюдения соглашения о конфиденциальности для рассмотрения использование вами документов ASTM. Вы соглашаетесь разрешить доступ к вашей информации и компьютерным системам для этой цели. Проверка будет проводиться с уведомлением не менее чем за 15 дней в обычное время. в рабочее время и таким образом, чтобы необоснованно не мешать вашей деятельности. Если проверка выявляет нелицензионное использование документов ASTM, вы должны возместить ASTM расходы понесенные при проверке и возмещении ASTM за любое нелицензионное использование. Вызывая эту процедуру, ASTM не отказывается от каких-либо прав на обеспечение соблюдения настоящего Соглашения или на защиту своей интеллектуальной собственности. собственности иными способами, разрешенными законом.
Пароли. Вы должны немедленно уведомить ASTM о любом известном или предполагаемом несанкционированное использование вашего пароля или любое известное или предполагаемое нарушение безопасности, в том числе потеря, кража или несанкционированное раскрытие вашего пароля или любой несанкционированный доступ или использование документа ASTM. Вы несете единоличную ответственность за сохранение конфиденциальности ваших пароль и для обеспечения санкционированного доступа и использования документа ASTM.
Определения. Для целей настоящей Лицензии авторизованным сайтом является локализованный сайт (одно географическое местоположение), находящееся под единым управлением в одном месте. Для Подписчик с местонахождением более чем в одном городе, каждый город считается отдельным сайтом. Для Подписчика, имеющего несколько местоположений в одном городе, каждое место считается другой сайт. (Если вам нужен онлайн-доступ к нескольким сайтам, свяжитесь с Кэти Hooper, ASTM International, по адресу [email protected] или по телефону: 610-832-9.634). Авторизованный Пользователь означает только сотрудники, преподаватели, сотрудники и студенты, официально связанные с Подписчиком в Авторизованный сайт, а также лица, имеющие законный доступ к фондам и объектам библиотеки. на Авторизованном сайте, используя IP-адрес в диапазоне, указанном в подписке. Авторизованными пользователями могут быть лица, удаленные от физического местонахождения Абонента, доступ которых администрируемых с Авторизованного объекта, но не лица, находящиеся на удаленных объектах или в кампусах с отдельными администрации. Например, сотрудник Абонента может считаться Авторизованный пользователь при доступе к сети Абонента из дома или во время поездки в другую город; однако сотрудники филиала или объекта в другом городе не считаются Авторизованные пользователи. Подписчик — физическое или юридическое лицо, подписавшееся на журнал ASTM и согласился с условиями этой ограниченной лицензии.
Прекращение. Настоящее Соглашение действует до момента расторжения. Вы можете расторгнуть настоящее Соглашение в любое время путем уничтожение всех копий (печатных, цифровых или на любом носителе) документа ASTM (журнала).
Применимое право, место проведения, юрисдикция. Настоящее Соглашение должно толковаться и толковаться в соответствии с законодательством Содружество Пенсильвании. Лицензиат соглашается подчиняться юрисдикции и месту проведения в штате и федеральные суды Пенсильвании для разрешения любых споров, которые могут возникнуть в связи с настоящим Соглашением. Ты также соглашаетесь отказаться от любых претензий на неприкосновенность, которыми вы можете обладать.
Интеграция. Настоящее Соглашение представляет собой полное соглашение между вами и ASTM в отношении его предмета. Это заменяет все предыдущие или одновременные устные или письменные сообщения, предложения, заявлений и гарантий и имеет преимущественную силу над любыми противоречащими или дополнительными условиями любого цитата, заказ, подтверждение или другое сообщение между сторонами, относящееся к его предмету вопрос в течение срока действия настоящего Соглашения. Никакие изменения настоящего Соглашения не будут иметь обязательной силы, если они не оформлены в письменной форме и не подписаны уполномоченным представителем каждой из сторон.
Отказ от гарантии. Если не указано иное в настоящем Соглашении, все явные или подразумеваемые условия, заявления и гарантии, включая любые подразумеваемые гарантии товарного состояния, пригодности для определенной цели или ненарушение прав, за исключением случаев, когда эти отказы считаются юридически недействительным.
Ограничение ответственности. В той мере, в какой это не запрещено законом, ASTM ни при каких обстоятельствах не будет нести ответственность за любые потери, повреждения, утерю данных или за особый, косвенный, косвенный или штрафной ущерб, независимо от того, теория ответственности, возникающая в связи с использованием или загрузкой ASTM Документ.