Ускорьте PAC, не меняя его ответы
Сохраните пересекающиеся исключения и порядок резервных маршрутов, сократив лишнюю работу по вычислению PAC.
«Поставьте обычный случай первым» — неполный совет для файла PAC. Первый return завершает решение. Когда правила перекрываются, их порядок входит в политику маршрутизации.
Рассмотрим частный прокси для одной службы и прямой маршрут для остальной части её домена:
function FindProxyForURL(url, host) {
host = host.toLowerCase();
if (host === 'restricted.example.net') {
return 'PROXY proxy.example.net:8080';
}
if (dnsDomainIs(host, '.example.net')) {
return 'DIRECT';
}
return 'PROXY proxy.example.net:8080';
}Имена — примеры. Если переместить широкую проверку суффикса выше исключения для точного хоста, ограниченная служба пойдёт напрямую. Скрипт может стать короче или быстрее, делая неправильное.
Сгруппируйте условия, не теряя приоритет
Когда большой список действительно является набором точных имён хостов одинакового ранга с одним результатом, подходящая структура поиска может быть яснее повторяющихся проверок шаблонов. Эту эквивалентность нужно сначала доказать. Точное имя, wildcard и правило диапазона адресов не относятся автоматически к одному взаимозаменяемому набору.
Точно так же удаление www. — изменение политики, если два имени намеренно используют разные маршруты. Оптимизация сравнения строк не должна молча переопределять пункт назначения.
Уберите дорогую работу, которая не нужна решению
Проверка равенства имени хоста не требует DNS. Выполняйте разрешение только когда остальной политике нужен адрес, и избегайте повторения одного и того же запроса в пределах одного вычисления там, где поддерживаемая среда PAC допускает повторное использование.
Держите рядом с файлом небольшой набор ожидаемых решений: конкретное исключение, соседа под широким суффиксом, несвязанное имя хоста и соответствующие адресные литералы. Сравнивайте возвращённый маршрут и порядок резервных записей, а не только то, разбирается ли JavaScript. Когда эти результаты совпадут, убедитесь, что браузер загрузил обновлённый PAC.
Улучшение производительности убедительно, когда те же случаи сохраняют намеченные маршруты, а лишняя работа исчезает. Широкие сокращения DIRECT могут убрать задержку, меняя исходящий IP.