Przyspiesz PAC bez zmiany jego odpowiedzi
Zachowaj nakładające się wyjątki i kolejność tras zapasowych, ograniczając zbędną pracę oceny PAC.
„Najpierw przypadek typowy” to niepełna rada dla pliku PAC. Pierwszy return kończy decyzję. Gdy reguły się nakładają, ich kolejność jest częścią polityki routingu.
Rozważ prywatne proxy dla jednej usługi i bezpośrednią trasę dla reszty jej domeny:
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';
}Nazwy są przykładami. Przeniesienie szerokiego sprawdzenia sufiksu nad wyjątek dokładnego hosta wysyła ograniczoną usługę bezpośrednio. Skrypt może być krótszy lub szybszy, robiąc przy tym coś złego.
Grupuj warunki bez utraty pierwszeństwa
Gdy duża lista jest naprawdę zbiorem dokładnych nazw hostów o równym priorytecie i jednym wyniku, odpowiednia struktura wyszukiwania może być jaśniejsza niż powtarzane kontrole wzorców. Tę równoważność trzeba najpierw udowodnić. Dokładna nazwa, wildcard i reguła zakresu adresów nie należą automatycznie do jednego wymiennego zbioru.
Podobnie usunięcie www. jest zmianą polityki, jeśli obie nazwy świadomie używają różnych tras. Optymalizacja porównania ciągów nie powinna po cichu przedefiniować celu.
Usuń kosztowną pracę, której decyzja nie potrzebuje
Sprawdzenie równości nazwy hosta nie wymaga DNS. Rozwiązuj tylko wtedy, gdy pozostała polityka potrzebuje adresu, i unikaj powtarzania tego samego zapytania w ramach jednej oceny, gdy obsługiwane środowisko PAC pozwala na ponowne użycie.
Trzymaj przy pliku mały zestaw oczekiwanych decyzji: konkretny wyjątek, sąsiada pod szerokim sufiksem, niepowiązaną nazwę hosta i odpowiednie literały adresów. Porównuj zwróconą trasę i kolejność wpisów zapasowych, a nie tylko to, czy JavaScript się parsuje. Gdy te wyniki się zgadzają, sprawdź, czy przeglądarka wczytała poprawiony PAC.
Poprawa wydajności jest przekonująca, gdy te same przypadki zachowują zamierzone trasy, a zbędna praca znika. Szerokie skróty DIRECT mogą usunąć opóźnienie, zmieniając jednocześnie wyjściowy adres IP.