اجعل ملف PAC أسرع دون تغيير إجاباته
حافظ على الاستثناءات المتداخلة وترتيب المسارات الاحتياطية مع تقليل عمل تقييم PAC غير الضروري.
«ضع الحالة الشائعة أولاً» نصيحة ناقصة لملف PAC. أول return ينهي القرار. وعندما تتداخل القواعد، يصبح ترتيبها جزءاً من سياسة التوجيه.
لنأخذ وكيلاً خاصاً لخدمة واحدة ومساراً مباشراً لبقية نطاقها:
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';
}الأسماء أمثلة. نقل فحص اللاحقة العام فوق استثناء المضيف المحدد يرسل الخدمة المقيّدة مباشرة. قد يصبح السكربت أقصر أو أسرع وهو يفعل الشيء الخطأ.
جمّع الشروط دون فقدان الأولوية
عندما تكون قائمة كبيرة فعلاً مجموعة من أسماء مضيفين محددة ومتساوية الترتيب وبنتیجه واحدة، فقد تكون بنية بحث مناسبة أوضح من فحوص الأنماط المتكررة. يجب إثبات هذا التكافؤ أولاً. فالاسم المحدد والمحرف البديل وقاعدة نطاق العناوين لا تنتمي تلقائياً إلى مجموعة واحدة قابلة للتبادل.
وبالمثل، فإن إزالة www. تغيير في السياسة إذا كان الاسمان يستخدمان مسارين مختلفين عمداً. لا ينبغي لتحسين مقارنة نصية أن يعيد تعريف الوجهة بصمت.
أزل العمل المكلف الذي لا يحتاجه القرار
فحص تساوي اسم المضيف لا يحتاج إلى DNS. لا تُجرِ التحليل إلا عندما تحتاج السياسة المتبقية إلى عنوان، وتجنّب تكرار البحث نفسه داخل تقييم واحد حيث تسمح بيئة PAC المدعومة بإعادة الاستخدام.
احتفظ بمجموعة صغيرة من القرارات المتوقعة بجانب الملف: الاستثناء المحدد، وشقيق تحت اللاحقة العامة، واسم مضيف غير ذي صلة، والقيم النصية للعناوين ذات الصلة. قارن المسار المُعاد وترتيب أي مدخلات احتياطية، لا مجرد نجاح تحليل JavaScript. وبعد تطابق تلك النتائج، تحقق من أن المتصفح حمّل ملف PAC المعدّل.
يكون تحسين الأداء مقنعاً عندما تحتفظ الحالات نفسها بمساراتها المقصودة ويختفي عمل التقييم غير الضروري. اختصارات DIRECT العامة قد تُخفي التأخير مع تغيير عنوان IP للخروج.