به‌روزرسانی‌های ذخیره‌سازی مشترک و انتخاب URL: worklets با مبدا متقابل و جستجوهای ذخیره شده

تارا آگیمانگ
Tara Agyemang

Chrome 130 تغییراتی را در Shared Storage API ارائه می‌کند تا امکان استفاده از اسکریپت‌های worklet متقاطع با createWorklet() و addModule() فراهم کند. همچنین به‌روزرسانی‌هایی را برای Select URL API با فضای ذخیره‌سازی مشترک در Chrome 132 با پشتیبانی از عبارت‌های جستجوی ذخیره شده معرفی می‌کنیم.

نموداری که سایت‌های ثبت‌شده را نشان می‌دهد می‌تواند هر نوع داده کلید/مقداری را در ذخیره‌سازی مشترک بنویسد، اما خواندن داده‌ها به APIهای خروجی خاص محدود می‌شود.
Shared Storage API به سایت‌های ثبت‌نام شده اجازه می‌دهد تا هر نوع داده کلید/مقداری را در ذخیره‌سازی مشترک بنویسند، اما خواندن داده‌ها به APIهای خروجی خاص محدود می‌شود.

ورکلت‌های متقاطع با API ذخیره‌سازی مشترک در Chrome 130

ما تغییراتی را در Shared Storage API در Chrome 130 ارائه کرده‌ایم تا هنگام کار با اسکریپت‌های Worklet با منبع متقاطع، انعطاف‌پذیری بیشتری به شما بدهیم.

چه چیزی تغییر کرده است

ما محدودیت یک منبع را برای addModule() حذف کرده‌ایم، بنابراین اکنون می‌توانید اسکریپت‌های Worklet را از هر منبعی بارگیری کنید. اسکریپت‌های Worklet با منبع متقابل موارد استفاده کلیدی مانند میزبانی اسکریپت‌های Worklet را در CDN‌ها فعال می‌کنند. هنگامی که اسکریپت Worklet با مبدأ متقابل در زمینه مرور فراخوانی است، مبدا متن فراخوانی به عنوان مبدا پارتیشن داده برای دسترسی به فضای ذخیره‌سازی مشترک استفاده می‌شود.

برای مطابقت با رفتار addModule() جدید، و کاهش سردرگمی بالقوه، ویژگی dataOrigin به فراخوانی createWorklet() اضافه شده است تا امکان خواندن و نوشتن در یک پارتیشن داده ذخیره‌سازی اشتراکی را فراهم کند که با زمینه مرور فراخوانی متفاوت است. این امر به شما امکان می‌دهد کنترل دقیق‌تری بر روی اینکه کدام منبع ذخیره‌سازی مشترک توسط هر Worklet قابل دسترسی است، حتی در هنگام استفاده از اسکریپت‌های worklet متقاطع.

چگونه تغییر کرده است

از Chrome 125، یک اسکریپت متقابل شخص ثالث در یک صفحه می‌تواند بدون نیاز به iframe با منبع متقابل با فراخوانی createWorklet(url) Worklet‌های متقاطع ایجاد کند. قبلا، createWorklet(url) از مبدا URL اسکریپت ( url ) به عنوان مبدا پارتیشن داده استفاده می کرد، صرف نظر از زمینه فراخوانی.

در کروم 130، برای تراز کردن با رفتار addModule() جدید، createWorklet() همچنین از زمینه فراخوانی به عنوان مبدا پارتیشن داده پیش فرض استفاده می کند. برای ادامه استفاده از مبدا URL اسکریپت به عنوان مبدا پارتیشن داده، یک ویژگی dataOrigin جدید معرفی شده است تا به شما امکان می دهد به طور صریح مبدا پارتیشن داده را تنظیم کنید.

ویژگی dataOrigin جدید "script-origin" را می پذیرد که مبدا پارتیشن داده را به عنوان مبدا اسکریپت تنظیم می کند و "context-origin" را که مبدا پارتیشن داده را به عنوان مبدا متن مرور فراخوانی تنظیم می کند. در نسخه آتی، ما همچنین قصد داریم از مبداهای پارتیشن داده های سفارشی پشتیبانی کنیم، جایی که یک اسکریپت Worklet می تواند به داده های ذخیره سازی مشترک از یک منبع دلخواه بر اساس انتخاب کردن دسترسی داشته باشد.

هنگام بارگیری یک اسکریپت با مبدا متقاطع با مبدا داده تنظیم شده روی "script-origin" ، درخواست اسکریپت ارسال شده از مرورگر شامل سرصفحه "Sec-Shared-Storage-Data-Origin: <origin>" خواهد بود. برای فعال کردن این کار، اسکریپت باید شامل سرصفحه پاسخ انتخابی "Shared-Storage-Cross-Origin-Worklet-Allowed: ?1" نیز باشد.

نحوه استفاده

اگر در حال حاضر از createWorklet() با مبدا اسکریپت به عنوان مبدا پارتیشن داده worklet استفاده می کنید، می توانید dataOrigin به صورت زیر تنظیم کنید:

sharedStorage.createWorklet(scriptUrl, {dataOrigin: "script-origin"});

از آنجایی که createWorklet() اجازه ایجاد یک پارتیشن داده متقاطع و ایجاد چندین Worklet را می دهد، ما شما را تشویق می کنیم که به createWorklet() روی استفاده از addModule() انتقال دهید.

ما اسناد برنامه‌نویس را به‌روزرسانی کرده‌ایم تا این تغییرات را منعکس کرده و راهنمایی‌های بیشتری ارائه کنیم.

جستجوهای ذخیره شده با Select URL API در Chrome 132

ما به‌روزرسانی‌هایی را برای Select URL API با فضای ذخیره‌سازی مشترک در Chrome 132 با پشتیبانی از عبارت‌های جستجوی ذخیره شده معرفی می‌کنیم.

چه چیزی در حال تغییر است

انتخاب URL API در حال حاضر دارای دو بودجه برای بارگذاری صفحه است که تعداد تماس‌های برقرار شده با API را در هر بارگذاری صفحه محدود می‌کند. ما در حال معرفی توانایی ذخیره و استفاده مجدد از پرس و جوها بر اساس هر صفحه هستیم. هنگامی که از یک پرس و جو ذخیره شده استفاده می کنید، اولین باری که یک پرس و جو ذخیره شده اجرا می شود، بودجه هر صفحه بارگیری می شود، اما نه برای اجرای بعدی پرس و جو ذخیره شده در همان بارگذاری صفحه.

نحوه پیاده سازی کوئری های ذخیره شده

با شروع نسخه Chrome 132، می توانید از پارامتر savedQuery در گزینه های selectURL() با نام پرس و جو استفاده کنید:

await sharedStorage.selectURL('experiment', urls, {
  savedQuery: 'control_or_experiment',
  keepAlive: true
});

از همان نام savedQuery برای هر تماس با selectURL() استفاده کنید تا مطمئن شوید که درخواست‌های بعدی به همان بودجه پرداخت می‌شوند.

ما اسناد را به‌روزرسانی کرده‌ایم تا این تغییرات را منعکس کند و جزئیات بیشتری در مورد بودجه‌بندی برای selectURL() ارائه دهد.

مشارکت کنید و بازخورد را به اشتراک بگذارید

توجه داشته باشید که پیشنهاد مشترک ذخیره سازی API در دست بحث و توسعه فعال است و بنابراین ممکن است تغییر کند.

ما مشتاقیم نظرات شما را در مورد API ذخیره سازی مشترک بشنویم.

در جریان باشید

  • فهرست پستی : برای آخرین به‌روزرسانی‌ها و اطلاعیه‌های مربوط به API ذخیره‌سازی مشترک، در فهرست پستی ما مشترک شوید.

به کمک نیاز دارید؟