”Sätt det vanliga fallet först” är ett ofullständigt råd för en PAC-fil. Den första return avslutar beslutet. När regler överlappar är deras ordning en del av routningspolicyn.

Tänk dig en privat proxy för en tjänst och en direkt väg för resten av dess domän:

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';
}

Namnen är exempel. Flyttas den breda suffixkontrollen ovanför undantaget för den exakta värden skickas den begränsade tjänsten direkt. Skriptet kan bli kortare eller snabbare medan det gör fel.

Gruppera villkoren utan att förlora prioritet

När en stor lista verkligen är en uppsättning exakta värdnamn av samma rang med ett utfall kan en lämplig uppslagsstruktur vara tydligare än upprepade mönsterkontroller. Den ekvivalensen måste fastställas först. Ett exakt namn, en wildcard och en adressintervallregel hör inte automatiskt till en utbytbar mängd.

På samma sätt är borttagning av www. en policyändring om de två namnen medvetet använder olika vägar. Optimering av en strängjämförelse bör inte tyst omdefiniera målet.

Ta bort dyrt arbete som beslutet inte behöver

En likhetskontroll av värdnamn kräver ingen DNS. Slå bara upp när den återstående policyn behöver en adress, och undvik att upprepa samma uppslag inom en utvärdering där den stödda PAC-miljön tillåter återanvändning.

Håll en liten uppsättning förväntade beslut vid filen: det specifika undantaget, ett syskon under det breda suffixet, ett orelaterat värdnamn och relevanta adresslitteraler. Jämför vägen som returneras och ordningen för eventuella reservposter, inte bara om JavaScript parsas. När dessa resultat stämmer, verifiera att webbläsaren laddade den reviderade PAC-filen.

En prestandaförbättring är övertygande när samma fall behåller sina avsedda vägar och onödigt utvärderingsarbete försvinner. Breda DIRECT-genvägar kan få en fördröjning att försvinna medan utgående IP ändras.

Relaterade artiklar