Faceți PAC-ul mai rapid fără a-i schimba răspunsurile
Păstrați excepțiile suprapuse și ordinea rutelor de rezervă, reducând munca inutilă de evaluare a PAC.
„Puneți cazul obișnuit primul” este un sfat incomplet pentru un fișier PAC. Primul return încheie decizia. Când regulile se suprapun, ordinea lor face parte din politica de rutare.
Luați în considerare un proxy privat pentru un serviciu și o rută directă pentru restul domeniului său:
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';
}Numele sunt exemple. Mutarea verificării late a sufixului deasupra excepției hostului exact trimite serviciul restricționat direct. Scriptul poate fi mai scurt sau mai rapid făcând lucrul greșit.
Grupați condițiile fără a pierde precedența
Când o listă mare este într-adevăr un set de nume de host exacte, de rang egal și cu un singur rezultat, o structură de căutare potrivită poate fi mai clară decât verificările repetate de tipare. Această echivalență trebuie stabilită mai întâi. Un nume exact, un wildcard și o regulă de interval de adrese nu aparțin automat unui singur set interschimbabil.
La fel, eliminarea www. este o schimbare de politică dacă cele două nume folosesc intenționat rute diferite. Optimizarea unei comparații de șiruri nu ar trebui să redefiniască în tăcere destinația.
Eliminați munca costisitoare de care decizia nu are nevoie
O verificare de egalitate a numelui de host nu necesită DNS. Rezolvați doar când politica rămasă are nevoie de o adresă și evitați repetarea aceleiași interogări într-o evaluare unde mediul PAC acceptat permite reutilizarea.
Păstrați un set mic de decizii așteptate lângă fișier: excepția specifică, un frate sub sufixul larg, un nume de host nelegat și literalii de adresă relevanți. Comparați ruta returnată și ordinea eventualelor intrări de rezervă, nu doar dacă JavaScript se analizează. Când acele rezultate coincid, verificați că browserul a încărcat PAC-ul revizuit.
O îmbunătățire de performanță este convingătoare când aceleași cazuri își păstrează rutele dorite și munca inutilă dispare. Scurtăturile DIRECT largi pot face o întârziere să dispară schimbând în același timp IP-ul de ieșire.