«Поставте звичайний випадок першим» — неповна порада для файлу 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.

Схожі статті