Базовая версия для отработки основного функционала.
Доработка исходного расширения версии 1.0.5 от 28.08.2014.
Проверено в браузерах SRWare Iron 29/31/49 и 360 Extreme Explorer 9 (CR69).
Основные изменения:
- оптимизация JS/CSS для работы на любых версиях хром-браузеров;
…неподдерживаемые в "старых" браузерах функции/стили заменены на аналоги;
- из кода полностью вырезана вся гуглоаналитика и сбор статистики;
…также удалены ссылки на гуглозин и предложения "заценить"… :)
- удалена синхронизация с гугло-аккаунтом, аддон работает полностью автономно;
…локальное хранилище также не используется;
- основная кнопка вызова пересажена с тулбара на омнибокс;
…используется API pageAction, в версиях 6х+ – без разницы, кнопка только на тулбаре;
- удалён интерфейс всплывающих окон, нет никаких сохраняемых настроек;
…все действия – только в пределах текущей вкладки:
- удалены файлы и скрипты страниц настроек и описания изменений;
…а также соответствующие CSS/JS, картинки и библиотека JQuery;
- положение перемещаемого блока статистики проверки теперь не сохраняется;
…запоминается только до перезагрузки страницы);
- выбор метода XHR-запросов ('HEAD'/'GET') отсутствует;
…при групповой проверке используется 'HEAD', при "поштучной" – 'GET';
- добавлена функция "пакетной" перепроверки ссылки с ошибками, вызывается кнопкой в соответствующем списке* ссылок;
при этом также используется метод 'GET', дающий более корректный результат (как при ручной проверке одиночных ссылок);
* список ссылок, прошедших пакетную проверку, вызывается щелчком по соответствующему полю счётчика в блоке результатов;
- оптимизация кода скриптов, часть функций переделана с целью повышения быстродействия и снижения потребления памяти:
- упрощён основной фоновый процесс, удалены все лишние функции (работа с локальным хранилищем, уведомления и пр.);
- сделана автовыгрузка фонового скрипта в покое + быстрая автовыгрузка после запуска анализатора ссылок;
- изменена привязка меню (и кнопки в омнибоксе) к "допустимым" для обработки страницам (только http(s)/file);
- изменена структура контекстного меню – добавлен пункт "Проверить все ссылки", дублирующий кнопку в омнибоксе;
- упрощён основной контент-скрипт, удалены лишние функции/переменные, определения переменных вынесены в аргументы функций;
- в контент-скрипт добавлен пре-фильтр* ссылок, снижающий объём "пакетных" проверок (уменьшает общее время проверки);
* исключает из обработки ссылки, проверка которых бессмысленна (скриптовые, локальные, служебные, почтовые, якоря и т.п.);
- в функцию запуска XHR-запроса добавлен таймаут (15 секунд) во избежание "подвисания" запросов при проверках;
- в функцию запуска XHR-запроса добавлен "микро-хак" для уменьшения проблем с запросами при смешанном содержимом (https/http):
работает только при пакетных проверках с учётом протоколов текущей страницы и проверяемых ссылок;
- доработан интерфейс вывода результатов проверки, поправлены отдельные стили и допилена логика обработки действий с элементами;
- исправлен баг оригинала – некорректное отображение счётчиков проверенных ссылок при последующих "поштучных" проверках ссылок;
- в функцию запуска XHR-запроса добавлена обработка ошибок запроса (с выводом подсказки о просмотре в консоли);
- изменён манифест, удалены лишние разрешения, удалено использование горячей клавиши запуска групповой проверки ссылок;
- сделан полноценный перевод на русский язык (единственная локализация, зашита в код);
- несмотря на общую простоту интерфейса, к отдельным элементам добавлены всплывающие подсказки.
Прочие изменения:
- заменена основная иконка расширения (источник) и удалены все прочие иконки;
- из комплекта удалены все лишние файлы, объём аддона уменьшен в 6 раз.
Скриншоты:
Общий вид страницы с результатами проверки всех ссылок:
[Копия скриншота]
Кнопка перепроверки группы ссылок:
[Копия скриншота]
История и обсуждение
Общие технические сведения
- Технологии и API:
Чистый JavaScript (ES5), API: content-script, tabs, contextMenus, declarativeContent, pageAction
- Запрашиваемые разрешения:
[ "http://*/*", "https://*/*", "ftp://*/*", "file:///*/*", "contextMenus", "declarativeContent" ]
Загрузка и установка
Дополнительно
|