Category: it

Category was added automatically. Read all entries about "it".

lazy loading. черновик

1. Нативная ленивая загрузка встроенная в браузер.
Ван не надо писать никакой код, кроме добавления атрибута  в <img loading='lazy'> браузер
и браузер Chrome всё сделает за вас. Однако этот атрибут поддерживают не все браузеры.
Например Safary(декстоп и мобильный), а также android FireFox - не поддержижвает.

https://mathiasbynens.be/demo/img-loading-lazy - страница с кучей картнок кошек. Пример поддержки гугл хрома с встроенной поддержкой lazyloading.
Подбробнее об этом: https://web.dev/native-lazy-loading/ и https://css-tricks.com/a-native-lazy-load-for-the-web-platform/


2. Пишем сами.
https://css-tricks.com/tips-for-rolling-your-own-lazy-loading/
https://habr.com/ru/company/ruvds/blog/448914/ - использование нативной загрузки описанной в п1. и стороннего скрипта (для тех браузеров, кто не поддерживает)


https://siteclinic.ru/blog/internal-optimization/lazy-load/

IE11 - как объявить class? Решение ошибки SCRIPT 1002

 class myClass {
     myfunction() {
         return true;
     }
 }
var mes = new myClass;
mes.myfunction(); // return true;




Дело в том, что IE, а точнее встроенный в него стандарт javascript ES5 не поддерживает классы (а объявление классов уже относится к ES6) и соответственно вышеприведенный код будет выдавать ошибку . Таблицу совместимости можно посмотреть тут

Что же делать?
Первый вариант. Переписать код без объявления классов, согласно стандарту ES5. Например:


mes = {};
mes.myfunction = function(){
    return true;
}



mes.myfunction(); // return true;



Или второй вариант. Использовать babel https://babeljs.io/repl
вставить ваш код с классом и получить сгенерированный код такойже функциональности для es5. (слева необходимо отметить в Presets es2015)
Полученный сгенерированный код приводить не буду, т.к. он занимает очень много строк. Вы сами можете его сгенерировать и посмотреть.

Задать регион для гугла в KeyCollector

По умолчанию KeyCollector наначает регион для съема позиций для гугла исходя из текущего вашего ip.
Однако если вы, например, из Новосибирска, а хотите снять позиции для Москвы, то необходимо указать следующее значение параметра UULE(как на скрине).
Как узнать uule для любого региона.
1. Зайти на https://padavvan.github.io/ и указать ваш регион. Для Москвы это будет выглядеть так: Moscow,Moscow,Russia
Соответственно, нужно нам значение UULE для вставки в настройку KeyCollector: uule=w+CAIQICIUTW9zY293LE1vc2NvdyxSdXNzaWE
2. Посмотреть таблицу регионов (я так и не понял, это все регионы перечислены или только некоторые) можно узнать тут: https://developers.google.com/adwords/api/docs/appendix/geotargeting (Download Geo Target CSV file)




PS. Указание региона через lr=213 (для Москвы) - результа не принесет в 2020 году =)

Как установить modx на локальный сервер через git

Рассмотрю пример как быстро размернуть Modx на локальном сервере.
У меня это получилось не с первого раза, потому что установка modx через git не такая быстрая в одно касание. А приходится делать дополнительные обязательные действия (зачем и почему так сделано, когда можно было обойтится и без них - хз, такой вот Modx).

1. Вам нужно подготовить рабочее окружение,а это: nginx/apache + php + mysql
Кратко я изложил это в данном посте. Я делал окружение через Docker в Windows. Вы можете ипользовать любое другое окружение.
Создайте элементарный скрипт, разместите его и зайдите на http://localhost - чтобы убедиться что он у вас работает.
2. Скачиваем modx.
Переходим на страницу https://docs.modx.com/revolution/2.x/getting-started/installation/git-installation
Читаем и обязательно выполняем пункт Run the Build! - Если его пропустить то modx при установке выдаст ошибку и работать не будет
Итак, я тут все опишу что надо делать.
Все делаем через терминал:
1. переходим в пустую папку, в которой у вас будет размещен сайт.
2. Выполняем:
git clone http://github.com/modxcms/revolution.git .


Обратите внимание что на конце "пробел и точка" - чтобы репозитория клонировалась в текущую папку. (можно и по другому, но мне так удобней)
git fetch --all
git checkout v2.7.1-pl  (стабильная последняя версия на момент 07.05.2019)
docker-compose up -d


3. Переименовываем _build/build.config.sample.php to _build/build.config.php и прописываем настройки нужные в нем
4. Переименовываем _build/build.properties.sample.php to _build/build.properties.php и прописываем настройки нужные в нем
5. Запускаем transport.core.php (из командной строки или из браузера)
cd _build
php transport.core.php



6. Проверяем файлы и папки, которые создались в результате п.5.
core/packages/core.transport.zip, core/packages/core/, core/packages/core/manifest.php
7. И только теперь можно переходить к устанвоке через localhost/setup/
Алилуя!!!

Ошибки, которые могут появится

1. Не удалось установить MODX /core/packages/core.transport.zip - данный файл отсутствует

Выглядит так: Не удалось установить MODX, поскольку MODX не смог распаковать пакет /var/www/html/core/packages/core.transport.zip
Да, все правильно, этот файл отсутствует в репозитории Modx на гитхабе.
Что делать? Выполнять пункты 3, 4, 5, 6 - которые написаные чуть выше!

2. Parse error: syntax error, unexpected '{' in /var/www/html/core/config/config.inc.php on line 13

Да, это прям обязательная ошибка, без которой ну никак я не мог обойтись
Что делать? Открываем данный файл, находим 13 строчку и ставим значение в 'кавычки'. Тоже самое делаем и с 14 строкой (вроде бы 14 строка, пишу по памяти)

Если все сделал по данной инструкции, но по прежнему возникают ошибка
1. Удаляете всё из папки core/cache/*
2. Удаляете бд и создаете её заново
3. установите с нуля через  /setup

Вроде всё! Вопросы? пишите в комментариях, постараюсь помочь!

Docker для windows - php apache mysql phpmyadmin сборка

Мне понадобилась рабочая сборка именно с apache2, тк важно было наличие файла .htaccess, чтобы симитировать окружение как на боевом хостинге.
Отличный образ linux php apache mysql phpmyadmin docker с предустановленными настройками по умолчанию https://github.com/sprintcube/docker-compose-lamp
можно выбрать любую версию php: 5.6, 7.1, 7.2
Сразуже можно развернуть, что очень удобно!

Заходим на сервер через командную строку
Для входа в контейнер, в котором у вас установлен web server. Набрать в консоли:
docker exec -it 7.2.x-webserver /bin/bash

Как подключиться к бд mysql из командной строки
Из контейнера веб сервера к mysql с комощью командной строки мне не удалось подключиться.
Это можно сделать из командной строки windows. Но! надо обязательно установить mysql shell. (При установке mysql для windows выберите данный пункт)
Далее открываете это приложение (будет выглядеть как окно терминала) и если отображается в строке mysql js. То необходмимо ввести команду:
\sql
- чтобы переключить командную строку в данный режим работы.
И дальше:
\connect root@localhost
вводите пароль и далее все стандартно: например, show databases;. и тд

Cannot add or update a child row: a foreign key constraint fails - исправляем ошибку

Это означает что либо у вас произошла ошибка внешних ключей. Что в дочерних таблицах есть записи, которые ссылаются на родительские. А в родительских — этих записей нет.

Отображаем все записи, которые ошибочно ссылаются:

SELECT * FROM insts_metro WHERE metro_id NOT IN (SELECT id FROM metro);

Удаляем эти записи:

DELETE FROM insts_metro WHERE metro_id NOT IN (SELECT id FROM metro)

Настраиваем гит игнор файла в Git и в Phpmyadmin. Не работает gitingnore

Если файл уже был добавлен, то изменение в .gitignore не вызывает удаления из текущего индекса (что логично и безопасно).

Если файлы только добавлены, но еще не включены в коммит

В данном конкретном случае именно так и есть. При этом достаточно удалить их из индекса. Данная команда возвращает индекс к HEAD, то есть состоянию последнего коммита.


git reset <file-name>



Вы можете заметить, что сам Git предлагает использовать другую команду:


git rm --cached <file-name> 



В данном случае эти команды эквивалентны. Такое дублирование появилось в результате эволюционного развития функционала Git. Это в том числе отражено в документации и в сообщениях Git: где-то рекомендуется reset, где-то rm --cached.

Если игнорируемые файлы уже есть в последнем коммите

Возможна и такая ситуация, на всякий случай я опишу и ее. Здесь reset не сработает, нужен rm. Аргумент --cached заставляет Git удалить файл из индекса, но не трогать рабочую область. То есть он буквально индексирует удаление файла, хотя этого удаления не было. Если сделать это с файлом, который не игнорируется, то после коммита он будет в категории неотслеживаемых (untracked).


git rm --cached <file-name> 



Если нужно убрать целую игнорируемую папку, добавляем ключ -r:


git rm -r --cached <path>



Эта удобная команда применяет rm ко всем файлам, указанным в .gitignore:


git rm --cached `git ls-files -i --exclude-from=.gitignore` 



Вариант того же для windows powershell:


foreach ($i in iex 'git ls-files -i --exclude-from=.gitignore') { git rm --cached $i }



Теперь результат команды git rm нужно зафиксировать коммитом.


git commit -m'removed gitignored files'

Внимание! Важно!!! Файлы удалятся при коммите и гитпуле на продакшене!!!
подробнее: тут


Взято отсюда
https://ru.stackoverflow.com/questions/432432/%D0%9D%D0%B5-%D0%B8%D0%B3%D0%BD%D0%BE%D1%80%D0%B8%D1%80%D1%83%D1%8E%D1%82%D1%81%D1%8F-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B2-gitignore

Spywords отзывы. Свежий объективный обзор и возможности 2017 г.

Без лишней воды рассмотрю сервис spywords.ru.
Выясним как хорошо он собирает данные, каким данным стоит верить, а каким нет. Проверю объективно на сайте, к которым у меня есть доступ к Яндекс Директу и Метрике.

Важно! За этот обзор мне никто денег не платил - поэтому скажу как есть. Плюс расскажу как можно полезно использовать данные из spywords и как с ними работать.

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

Таблица 1
Важно! Все данные актуальны на момент составления отчета. Дату смотрим в подвале сайта!

Очень странно, что spywords не указал данные по Гуглу, даже из серча - т.к. сайт получает основной трафф именно из Гугла. Поэтому в этом пункте жирный минус.
Поисковая система Яндекс.
1. Запросов в контексте - цифра по фразам достаточно близка. Конечно, это не те фразы, которые указаны в самом Директе.
2. Уникальные объявления (их количество). Точная цифра, можно доверять. При переходе высвечиваются именно сами объявления с текстом и заголовком и их кол-во. Можно доверять полностью.
3. Средняя позиция. Тут указано СР3 - то есть в среднем объявления показываются на позиции спец. рамещение 3. Можно доверять, это похоже на правду, т.к. цена по фразам колеблется СР3 - гарантия.
4. Бюджет из контекста в день - 51 р. Вот тут вообще не стоит смотреть на эту цифру, т.к. реальная цифра составляет в 12 раз больше. У знака вопроса указано, что это может быть не точная цифра, однако можно сравнивать эту цифру с конкурентами, и это даст иллюстрацию в соотношении к бюджету конкурентов. Однако, точных данных сколько же тратят конкуренты нет, поэтому не могу ничего сказать по этому поводу.
5. Трафик из контента (видимо, в день - 359). В реальности за месяц из Яндекса было 1250 переходов, значит в среднем в день - 41. Цифра отличается в 8,5 раз!. Не стоит доверять этой цифре. Точность оставляет желать лучшего. Возможно она актуальна в сравнении с другими конкурентами (не проверял) Но и то, это только очень поверхностное соотношение, основанное на статистике частоты запросов прошлых данных.



Таблица 2 "Запросы домена в Яндекс Директ"
Для чего это смотреть? При анализе конкурента - понятно, для чего. Чтобы посмотреть по каким запросам конкурент рекламируется. А смотреть свой сайт полезно для изучения не нужных фраз, чтобы указать их в минус словах.
Если нажать на кнопку "Все запросы в Яндекс Директ", то увидим следующее.


Сравнивая отчеты в Яндекс Директе за тотже период скажу следующее - что цена клика отличается в большую сторону в 2-6 раз и на эти цифры напрямую смотреть не надо. Возможно, эти цифры в плане отношения, будут актуальны в сравнении с другими конкурентами.
Полезно посмотреть свои объявления и запросы, по которым они показываются для добавления минус слов в РК, но это можно сделать и не с помощью этого сервиса.
Ну и конечно, совсем очевидная польза в данном отчете - смотреть, по каким запросам рекламируются конкуренты.


Таблица 3. "Уникальные объявления в Яндекс Директ"
Об этом я уже сказал в п.1, Таблицы 2. Данные тут очень точные, можно доверять. Отображаются именно те объявления, которые были запущены на тот момент.
Если перейти по ссылке, то отобразится следующее

Удобно переходить на страницу, на которое ссылается объявление, а также просматривать все фразы какого-либо объявления:



Таблица(диаграмма) 4. Изменения позиций в поисковой выдаче


Это диаграмма следующие отчета, в который можно перейти (в след. таблице) и узнать, какие же запросы потерянные, какие улучшенные и пониженные.

Таблица 5. Запросы домена в поисковой выдаче Яндекса
Это самое что ни на есть семантическое ядро, которое может нам показать spywords. Экспортируем, копируем запросы для нашего семантическго ядра, если изучаем конкурентов. Но учитывайте, что тут указаны далеко не все запросы, по которым домен получает трафик. Другими словами этот список запросов примерный. Тут с огромной долей вероятностей упущены сезонные фразы и зачастую подсказки яндекса.

Кликаем на кнопку Все запросы в органическом поиске Яндекс (1047) И видим следующую таблицу:

Тут можно фильтровать по доли трафика, показов в месяц (цифра из "Wordstat в кавычках" по выбранному региону Спб или Мск в настройках отчета) и по позиции. Что очень удобно посмотреть по каким же запросам идет основной трафик и какие позции он занимает (По выбранному региону Мск или СПб)
Далее есть фильтр по позициям: какие улучшились, понизились и тд.
Скажу что более менее этим данным доверять можно.


Таблица 6. Видимость URL'ов домена в выдаче Яндекс

Из этого отчета видно сколько трафка получает та или иная страница, по каким запросам идет трафик и сколько запросов в топе.
Скажу сразуже, первая строка в этой таблице - это главная страница сайта, и она, якобы получает 70% трафика. Это не верно, по Яндекс метрики она получает 48% трафика. Однако в целом, по соотношению трафика на страницы, я бы сказал данные весьма годные. То есть картина по соотношению страниц, на которые идет траф -  правдивая. Дает не совсем точную, но среднее и грубо округленные данные.
Если нажмем на кнопку "все URL в органическом поиске", то увидим следующее.

Все тоже самое, есть возможность сортировки, что удобно.

Таблица 7,8. Конкуренты в Контексте и в поиске для домена

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


Мое Резюме и выводы:

  1. Для Я.Директа - точно определяет кол-во рекламируемых объявлений и приводит их содержание. Ключевые слова - по большей cтепени понятно по каким словам идет показ объявлений.

  2. Для СЕО в Яндексе. Показывает соотношение трафа на страницы, как мне показалось весьма годно. А вот с ключевыми словами на эти страницы - мне не оч понравилось. Т.к. отображается только очень примерный список ключевых слов. Вы не можете учитывать данные слова конкурента для своего семантического ядра в том виде, в котором дает данный сервис. Обязательно! необходимо работать над этими словами, искать что еще ищут, анализировать подсказки, парсить wordstat, прибегать к прочим сервисам и инструментам по составлению сем. ядру. (То есть посути, использовать выгрузку данного сервиса как для точки опоры, от чего отталкиваться)

Если Вы дочитали до конца, пожалуйста, отпишите в комментариях, что вы думаете по поводу этого сервиса и какие сервисы вы еще используете для анализа конкурентов в Рекламе и в Органике
У меня в планах сделать похожий обзор по Keys.so (только с уклоном сравнения по органике)