منتشر شده: ۲۰ مه ۲۰۲۵
وقتی یک ویژگی پلتفرم وب در هر مرورگری پیادهسازی میشود، به حالت Baseline Newly Available (جدیداً در دسترس) تبدیل میشود. پس از 30 ماه، آن ویژگی به حالت Baseline Widely Available (مبنا به طور گسترده در دسترس) تبدیل میشود، که آستانهای است که در آن اکثر وبسایتها میتوانند بدون نگرانی از سازگاری، ویژگیهایی را اتخاذ کنند. این راهنما نحوه استفاده از Baseline و با استفاده از دادههای موجود از کاربران وبسایت شما، نحوه انتخاب یک هدف Baseline را توضیح میدهد.
هدف پایه چیست؟
یک هدف پایه، گروهی از ویژگیهای وب است که توسعهدهندگان میتوانند بر اساس وضعیت پایه خود، پشتیبانی از آنها را انتخاب کنند. دو نوع هدف پایه وجود دارد: اهداف متحرک و اهداف ثابت.
اهداف متحرک، مانند Baseline Widely available یا Baseline Newly available، اهدافی هستند که مجموعه ویژگیهای موجود در آنها ممکن است با گذشت زمان تغییر کند. اهداف متحرک در مواردی منطقی هستند که میخواهید مجموعه ویژگیهای پشتیبانیشده با انتشار نسخههای جدید مرورگر بهطور خودکار تکامل یابند.
اهداف ثابت، اهدافی هستند که مجموعه ویژگیها در طول زمان تغییر نمیکنند. بهطورکلی، اهداف ثابت بر اساس سالهای تقویمی هستند. بهعنوانمثال، Baseline 2023 یک هدف ثابت است که شامل مجموعهای از ویژگیهای وب است که در سال 2023 بهصورت Baseline New در دسترس قرار گرفتهاند. Baseline 2023 شامل ویژگیهایی که پس از سال 2023 بهصورت Baseline درآمدهاند، نمیشود، بهاین معنی که مجموعه ویژگیهای Baseline 2023 هرگز تغییر نمیکند.
اهداف ثابت در مواردی که پیشبینیپذیری و قطعیت از اهمیت بالایی برخوردارند، منطقی هستند، اما میتوانند به مرور زمان منسوخ شوند، بنابراین هنگام استفاده از اهداف ثابت، ایده خوبی است که هدف خود را مرتباً ارزیابی مجدد کنید.
چرا باید هدف انتخاب کرد؟
پذیرش ویژگیها در وب به دلیل نگرانیهای مربوط به سازگاری با تأخیر مواجه میشود - و این مانع از آن میشود که وب به خوبی آنچه که میتواند باشد، باشد. Baseline نه تنها به مسئله پشتیبانی از ویژگیها در مرورگرها وضوح میبخشد، بلکه میتواند در روشن کردن این سوال که چه زمانی میتوانید از ویژگیهای خاص استفاده کنید، مفید باشد. با انتخاب هدفی که منعکس کننده مخاطب و نیازهای شما باشد، میتوانید در استفاده از ویژگیها در آن گروه هدف - بدون نیاز به بررسی تک تک ویژگیها - احساس اطمینان کنید.
از دادهها برای انتخاب هدف پایه خود استفاده کنید
دانستن هدف پایه مناسب برای انتخاب، در صورت امکان، باید یک تصمیم مبتنی بر داده باشد. وقتی دادهها را در اختیار دارید، انتخاب هدف آسانتر و بسیار آگاهانهتر میشود.
اگر دادههای نظارت واقعی کاربر را برای سایت خود دارید، میتوانید یاد بگیرید که چگونه اهداف پایه را به کاربران خود نسبت میدهید. به عنوان مثال، اگر از گوگل آنالیتیکس استفاده میکنید، یک راه رایگان برای به دست آوردن این اطلاعات استفاده از ابزار بررسی پایه گوگل آنالیتیکس است.
برای استفاده از این ابزار، باید با استفاده از حساب گوگل خود احراز هویت کنید و به این ابزار اجازه دهید تا مجوز فقط خواندنی برای مشاهده دادههای گوگل آنالیتیکس شما داشته باشد. از آنجا، ویژگی گوگل آنالیتیکس مورد نظر خود را که میخواهید دادههای هدف پایه برای آن تولید شود، انتخاب کنید. پس از انجام این مراحل، خروجی مشابه زیر دریافت خواهید کرد:

ما شاهد هستیم که ابزارهای دیگری نیز از Baseline پشتیبانی میکنند که میتوانند به شما یک نمای پویا از میزان حمایت مخاطبانتان از یک هدف مشخص ارائه دهند. به عنوان مثال، RUMvision شامل داشبوردی است که نشان میدهد چه میزان از مخاطبان شما برای هر سال Baseline از آن حمایت میکنند.

اگر ارائهدهندهی خدمات تحلیلی یا RUM من هنوز گزارش هدف پایه نداشته باشد، چه میشود؟
اگر از یک ابزار تحلیلی یا RUM استفاده میکنید که هنوز گزارش هدف پایه ارائه نمیدهد اما دادههایی در مورد نسخههای مرورگر دارد، میتوانید دادههای دنیای واقعی خود را با نگاشتهای نسخه مرورگر از ماژول baseline-browser-mapping به هم متصل کنید. این ماژول یک تابع جاوا اسکریپت - getAllVersions() - ارائه میدهد که مرورگرها را بر اساس نام و نسخه به سال پایه و وضعیت پشتیبانی از حالت در دسترس گسترده نگاشت میکند. این نگاشتها میتوانند به صورت آرایه، اشیاء کلیددار یا به عنوان CSV ارائه شوند. به عنوان مثال، بررسیکننده خط پایه گوگل آنالیتیکس از این ماژول برای اتصال دادههای تحلیلی با اهداف خط پایه استفاده میکند .
خروجیهای این تابع همچنین به صورت فایلهای JSON یا CSV میزبانیشده در دسترس هستند که روزانه بهروزرسانی میشوند. فایل all_versions_with_supports.csv حاوی دادههایی است که میتوانید با فیلدهای زیر با دادههای نسخه مرورگر ارائهدهندگان تجزیه و تحلیل خود مطابقت دهید:
-
browser: نام مرورگری که درbaseline-browser-mappingاستفاده شده است. -
version: نسخه مرورگر. برخی از مرورگرها فقط از شماره نسخه اصلی (major version) استفاده میکنند، برخی دیگر از شماره نسخه اصلی (major.minor) استفاده میکنند. -
year: مجموعه ویژگیهای سال پایه که این نسخه مرورگر از آن پشتیبانی میکند. اگر نسخه مرورگر قبل از تعیین پشتیبانی پایه در ژوئیه ۲۰۱۵ منتشر شده باشد، این فیلد شاملpre_baselineخواهد بود. -
supports: این فیلد برای نسخههای مرورگری که از آن مجموعه ویژگیها پشتیبانی میکنند، شاملwidelyیاnewlyاست و برای نسخههایی که از هیچکدام از این مجموعه ویژگیها پشتیبانی نمیکنند، خالی است. همه نسخههای مرورگری که از New available پشتیبانی میکنند، از Wide available نیز پشتیبانی میکنند. -
release_date: تاریخ انتشار این نسخه مرورگر، در صورت وجود. -
engine: نام موتور برای مرورگرهایی که در پاییندست یک مرورگر اصلی Baseline قرار دارند. فقط مرورگرهای مبتنی بر Blink گنجانده شدهاند، اما ممکن است موتورهای مرورگر دیگری نیز در آینده ارائه شوند. -
engine_version: نسخه کرومیوم که این نسخه مرورگر از آن پشتیبانی میکند. این مورد برای تعیین اینکه نسخه پاییندستی از کدام مجموعه ویژگی پایه پشتیبانی میکند، استفاده میشود.
این فایل با انتشار نسخههای جدید مرورگر و تغییر وضعیت پشتیبانی مرورگرهای مختلف، مرتباً بهروزرسانی میشود. مطمئن شوید که دادهها را روزانه بهروزرسانی میکنید.
اگر دادههای پشتیبانی از کاربران واقعی نداشته باشم، چه میشود؟
ممکن است در شرایطی قرار بگیرید که نتوانید دادههای واقعی کاربران را در مورد ویژگیهایی که در سطح پایه هستند، دریافت کنید. خبر خوب این است که میتوانید از طریق RUM Archive Insights ، ایدهای کلی از پشتیبانی از اهداف مختلف در سطح پایه به دست آورید، حتی به شما این امکان را میدهد که دادهها را تا سطح کشور فیلتر کنید. اگرچه این دادهها مختص کاربران وبسایت شما نخواهد بود، اما یک ابزار اطلاعاتی کلی است که نشان میدهد فرضیات زیر عموماً ایمن هستند:
- اهداف پایه جدیدتر - مانند سال جاری یا سال قبل - احتمالاً کمترین میزان پشتیبانی را در بین کاربران شما خواهند داشت. با این حال، مانند هر هدف پایه دیگری، با گذشت زمان از پشتیبانی بهتری برخوردار خواهند شد.
- اهداف پایه قدیمیتر - بهویژه «پایه بهطور گسترده در دسترس» - بهخوبی پشتیبانی خواهند شد. در صورت شک، «بهطور گسترده در دسترس» هدف بسیار خوبی است که با گذشت زمان و طی بازه زمانی ۳۰ ماهه، تکامل مییابد.
- حتی اهداف پایه قدیمیتر - آنهایی که خیلی فراتر از بازه زمانی ۳۰ ماهه «در دسترس گسترده» هستند - بهترین پشتیبانی را خواهند داشت. اگرچه «در دسترس گسترده» یک هدف پیشفرض خوب است، اما موارد استفاده خاص که نیاز به SLA های سختگیرانه دارند.
این احتمال وجود دارد که حتی اگر یک هدف Baseline را انتخاب کنید که بیش از پنج سال قدمت دارد، بتوانید ویژگیهایی را که در حال حاضر از آنها استفاده نمیکنید، به آن اضافه کنید. در بهترین حالت، ممکن است از قبل از این ویژگیها استفاده کنید، اما با چندپرکنندههایی که ممکن است به آنها نیازی نداشته باشید .
چگونه میتوانم یک هدف پایه انتخاب شده را در پروژه خود اعمال کنم؟
Browserslist روشی رایج برای هدف قرار دادن مرورگرهایی است که میخواهید از آنها پشتیبانی کنید. این روش در bundlerها و سایر ابزارهای مرتبط مانند Babel و PostCSS برای تصمیمگیری در مورد اینکه آیا بخشهای خاصی از کد نیاز به تبدیل یا حتی polyfill شدن دارند، استفاده میشود.
اکنون میتوان از Baseline به همراه Browserslist استفاده کرد، به طوری که وقتی یک Baseline target انتخاب میکنید، میتوانید آن را به عنوان یک پرسوجوی معتبر Browserslist مشخص کنید. این تضمین میکند که ابزارهای موجود در پروژه شما کد را مطابق با target انتخابی شما تبدیل میکنند. برای اطلاعات بیشتر، بخش «استفاده از Baseline به همراه Browserslist» را مطالعه کنید.
در مورد ویژگیهایی که هدف اولیه من را برآورده نمیکنند، چه باید کرد؟
پس از انتخاب یک هدف پایه، ممکن است ویژگیهایی داشته باشید که میخواهید از آنها استفاده کنید، اما در آن هدف قرار نمیگیرند. پایه به شما نمیگوید که در اینجا چه کاری باید انجام دهید، و اینکه آیا میخواهید از این ویژگیها استفاده کنید یا خیر، به نوع وبسایتی که میسازید و مخاطبان مورد انتظار بستگی دارد.
برای مثال، وبسایتهای تجارت الکترونیک یا B2B ممکن است مایل باشند آستانه پشتیبانی پایینتری داشته باشند و مشکلات را با پشتیبانی کاربرانشان حل کنند، در حالی که وبسایتهای دولتی ممکن است به آستانه پشتیبانی بالایی نیاز داشته باشند. یک قانون مهم در اینجا این است که همه ویژگیهای وب به یک شکل شکست نمیخورند . روشهای زیادی برای دستهبندی ویژگیها بر اساس نحوه شکست آنها وجود دارد، اما یک راه برای دستهبندی ویژگیهایی که ممکن است مفید باشند، چیزی شبیه به این است:
- بهبود: اگر این ویژگی در یک مرورگر پشتیبانی نشده استفاده شود، تجربه کاربری مختل نمیشود. ممکن است تجربه کاربری افت کند، اما احتمالاً برای کاربر قابل توجه نخواهد بود. مثال:
loading="lazy". - افزودنی: این ویژگی مزایای افزودنیای را ارائه میدهد که ممکن است قابل توجه باشند - مانند تغییرات در ظاهر صفحه یا برخی عملکردها. اگر این ویژگی پشتیبانی نشود، ممکن است تفاوت برای کاربران قابل توجه نباشد، مگر اینکه در مرورگری که از آن پشتیبانی میکند مقایسه شود. مثال: Subgrid
- نکتهی مهم: اگر این ویژگی پشتیبانی نشود، کاربر تجربهی کاربری منفی خواهد داشت - حتی ممکن است به طور کلی از کار بیفتد. مثال: رابط برنامهنویسی کاربردی دسترسی به سیستم فایل (File System Access API) به عنوان یک ویژگی اصلی و ضروری استفاده میشود.
همچنین ممکن است متوجه شوید که ویژگیهای خاصی خارج از هدف شما، پشتیبانی بهتری از آنچه فکر میکنید، دارند. میتوان فهمید که چه تعداد از کاربران شما از یک ویژگی خاص پشتیبانی میکنند. Can I Use این قابلیت را دارد که پشتیبانی از ویژگیهای خاص را در برابر دادههای تحلیلی شما بررسی کند. RUMvision همچنین در صورت مفید بودن، قابلیت بررسی و کاوش دادههای سطح ویژگی را دارد.
به این ترتیب، میتوانید از هدف پایه خود برای کاهش تعداد ویژگیهایی که باید با دقت بررسی کنید استفاده کنید. لازم نیست نگران همه چیز در داخل هدف خود باشید. اگر یک یا دو ویژگی خارج از هدف شما وجود دارد که میتواند بسیار مفید باشد، ابزارهایی برای بررسی بیشتر و تصمیمگیری در مورد اینکه آیا از چندلایهسازی (polyfill) استفاده کنید یا به عنوان یک پیشرفت تدریجی (progressive enhancement) استفاده کنید، در اختیار دارید.
نتیجهگیری
هر برنامه وب الزامات متفاوتی دارد - از یک سایت تجارت الکترونیک که میتواند نگرانیهای ناسازگاری بیشتری را تحمل کند، تا یک وبسایت دولتی که قطعاً باید برای بیشترین تعداد ممکن از کاربران در دسترس و عملیاتی باشد. اینها محاسباتی هستند که شما باید خودتان انجام دهید، و هدف Baseline این نیست که به شما بگوید هنگام اتخاذ ویژگیهای جدید وب چه تصمیماتی بگیرید، بلکه بیشتر مسئله چگونگی ... است.