Направете 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.