PAC үнэлэх үед Jint dnsResolve эсвэл myIpAddress байхгүй гэж мэдээлбэл, илүү JavaScript ачаалах нь заавал шийдэл биш. Эдгээр PAC туслахууд нь хост програмын өгдөг орчны хэсэг юм.

FindProxyForURL дуудахын өмнө

Дэмжигдсэн PAC туслах багц болон хаягийн гэр бүлийг сонгоод, тэдгээр туслахуудыг хөдөлгүүрт суулгана. Тэдний гэрээг хадгал: dnsResolve хост нэрийг хүлээж авна, myIpAddress аргумент хүлээж авахгүй бөгөөд локал интерфэйсийн бодлого шаарддаг, shExpMatch нь shell маягийн хэв маягийг ашигладаг. Тохиромжтой утга буцаадаг stub нь буруу маршрутыг чимээгүй сонгож болно.

Тэр эхлүүлэлт хийгдсэний дараа үндсэн дуудлага Jint 4.4.0 дээр ийм харагдаж болно:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

engine нь тохируулсан Jint.Engine; pacSource нь татсан PAC программ. destination.IdnHost нь порт эсвэл замгүйгээр хост нэрийг өгнө. Энэ дуудлага PAC татахгүй, прокси холболт нээхгүй.

Дуудсаны дараа

PROXY proxy.example:8080; DIRECT гэх мэт үр дүнг маршрутын нэр дэвшигч ба нөөцийн эрэмбэлсэн жагсаалт гэж тайлбарла. Тэр бүхэл мөрийг прокси URL болгон дамжуулбал утга нь алдагдана. Үнэлгээний алдааг тодорхой DIRECT үр дүнгээс ялгаж бай.

Ажиллаж байх үед

Jint-ийн үргэлжлэх хугацаа, мэдэгдэл, санах ой, цуцлалтын хязгаарлалтыг тохируулж, зөвхөн шаардлагатай хост функцийг ил болго. DNS дуудлагыг тусад нь хязгаарла: JavaScript гүйцэтгэлийн шалгалтууд дурын блоклодог хост дуудлагыг таслах боломжтой болгодоггүй. Нэг хөдөлгүүрт хандахыг цуваа болго эсвэл зэрэгцээ ажилд тусдаа эзэмшсэн хувилбар өг; хөдөлгүүрүүд нэгэн зэрэг ашиглахад аюулгүй биш.

Хөтчийн PAC хэрэгжүүлэлтүүд туслах өргөтгөл болон ил болгох URL дэлгэрэнгүй мэдээллээрээ ялгаатай байж болно, ялангуяа HTTPS-ийн хувьд. Нэг жишээ үр дүнтэй таарах нь хөтчийн маршрутжуулалтын зан төлөвтэй таарахаас бага зүйлийг батална.

Холбоотой нийтлэлүүд