«Pon primeiro o caso común» é un consello incompleto para un ficheiro PAC. O primeiro return remata a decisión. Se as regras se solapan, a súa orde forma parte da política de rutas.

Pensa nun proxy privado para un servizo e unha ruta directa para o resto do seu dominio:

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

Os nomes son exemplos. Mover a comprobación ampla de sufixo por riba da excepción do host exacto envía o servizo restrinxido directamente. O script pode ser máis curto ou rápido mentres fai o incorrecto.

Agrupa as condicións sen perder a precedencia

Cando unha lista grande é realmente un conxunto de nomes de host exactos, de igual rango e cun só resultado, unha estrutura de busca axeitada pode ser máis clara que as comprobacións repetidas de patróns. Esa equivalencia debe establecerse primeiro. Un nome exacto, un wildcard e unha regra de rango de enderezos non pertencen automaticamente a un conxunto intercambiable.

Do mesmo xeito, quitar www. é un cambio de política se os dous nomes usan rutas distintas a propósito. Optimizar unha comparación de cadeas non debería redefinir o destino en silencio.

Elimina o traballo custoso que a decisión non necesita

Unha comprobación de igualdade de nome de host non require DNS. Resolve só cando a política restante necesite un enderezo, e evita repetir a mesma busca dentro dunha avaliación onde o contorno PAC admitido permita a reutilización.

Mantén un pequeno conxunto de decisións esperadas xunto ao ficheiro: a excepción concreta, un irmán baixo o sufixo amplo, un nome de host non relacionado e os literais de enderezo relevantes. Compara a ruta devolta e a orde das entradas alternativas, non só se o JavaScript se analiza. Cando eses resultados coincidan, verifica que o navegador cargou o PAC revisado.

Unha mellora de rendemento convence cando os mesmos casos conservan as súas rutas previstas e desaparece o traballo innecesario. Os atallos DIRECT amplos poden facer desaparecer unha demora mentres cambian o IP de saída.

Artigos relacionados