Ortak Depolama ve Seçili URL güncellemeleri: kaynak ötesi iş akışları ve kayıtlı sorgular

Tara Agyemang
Tara Agyemang

Chrome 130, createWorklet() ve addModule() ile kaynak ötesi iş parçacığı komut dosyalarının kullanılmasını sağlamak için Shared Storage API'de değişiklikler yapar. Ayrıca, Chrome 132'de, kayıtlı sorguların desteğiyle Paylaşılan Depolama Alanı'na sahip Seç URL API'sinde güncellemeler sunuyoruz.

Kayıtlı sitelerin, Ortak Depolama'ya her tür anahtar/değer verisi yazabileceğini ancak verilerin okunmasının belirli çıkış API'leriyle kısıtlandığını gösteren şema.
Shared Storage API, kayıtlı sitelerin Shared Storage'a herhangi bir türde anahtar/değer verisi yazmasına olanak tanır ancak verilerin okunması belirli çıkış API'leriyle sınırlıdır.

Chrome 130'da Shared Storage API ile kaynak arası iş parçacıkları

Kaynaklar arası işleyici komut dosyalarıyla çalışırken size daha fazla esneklik sunmak için Chrome 130'ta Shared Storage API'de değişiklikler yaptık.

Neler değişti?

addModule() için aynı kaynak kısıtlamasını kaldırdık. Artık herhangi bir kaynaktan iş parçacığı komut dosyası yükleyebilirsiniz. Kaynaklar arası işleyici komut dosyaları, işleyici komut dosyalarını CDN'lerde barındırma gibi önemli kullanım alanlarını etkinleştirir. Worklet komut dosyası, çağıran tarama bağlamıyla farklı bir kaynakta olduğunda, paylaşılan depolamaya erişmek için çağıran bağlamın kaynağı veri bölümü kaynağı olarak kullanılır.

Yeni addModule() davranışıyla eşleşip olası karışıklıkları azaltmak için dataOrigin mülkü, createWorklet() çağrısına eklendi. Bu sayede, createWorklet() çağrısını yapan tarama bağlamından farklı bir paylaşılan depolama alanı veri bölümüne okuma ve yazma yapılabilir. Bu sayede, kaynak arası iş parçası komut dosyaları kullanırken bile her bir iş parçasının hangi kaynağın ortak depolama alanına eriştiği üzerinde daha ayrıntılı kontrol sahibi olabilirsiniz.

Değişiklik nasıl oldu?

Chrome 125'ten itibaren, bir sayfadaki üçüncü taraf çapraz kaynak komut dosyası, createWorklet(url) çağrısı yaparak çapraz kaynak iFrame'lere gerek kalmadan çapraz kaynak iş parçacığı oluşturabilir. Daha önce createWorklet(url), çağrılma bağlamından bağımsız olarak veri bölümü kaynağı olarak komut dosyası URL'sini (url) kullanıyordu.

Chrome 130'ta, yeni addModule() davranışıyla uyumlu olması için createWorklet(), varsayılan veri bölümü kaynağı olarak çağıran bağlamı da kullanır. Veri bölümü kaynağı olarak komut dosyası URL'si kaynağını kullanmaya devam etmek için veri bölümü kaynağını açıkça ayarlamanıza olanak tanıyan yeni bir özellik dataOrigin kullanıma sunulmaktadır.

Yeni dataOrigin mülkü, veri bölümünün kaynağını komut dosyasının kaynağı olarak ayarlayan "script-origin" ve veri bölümünün kaynağını çağıran tarama bağlamının kaynağı olarak ayarlayan "context-origin" değerlerini kabul eder. Gelecekteki bir sürümde, bir iş parçacığı komut dosyasının isteğe bağlı olarak rastgele bir kaynaktan paylaşılan depolama verilerine erişebileceği özel veri bölümü kaynaklarını da desteklemeyi planlıyoruz.

Veri kaynağı "script-origin" olarak ayarlanmış bir kaynakta çapraz komut dosyası yüklenirken tarayıcıdan gönderilen komut dosyası isteği bir "Sec-Shared-Storage-Data-Origin: <origin>" başlığı içerir. Bunu etkinleştirmek için komut dosyasında "Shared-Storage-Cross-Origin-Worklet-Allowed: ?1" etkinleştirme yanıtı üstbilgisi de bulunmalıdır.

Nasıl kullanılmalı?

createWorklet()'ü, iş parçacığının veri bölümü kaynağı olarak komut dosyası kaynağıyla zaten kullanıyorsanız createWorklet()'ü aşağıdaki gibi ayarlayabilirsiniz:dataOrigin

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

createWorklet(), kaynak ötesi veri bölümü ve birden fazla iş parçacığı oluşturmanıza olanak tanıdığından addModule() yerine createWorklet()'e geçiş yapmanızı öneririz.

Geliştirici dokümanlarını bu değişiklikleri yansıtacak ve daha fazla rehberlik sağlayacak şekilde güncelledik.

Chrome 132'de Select URL API ile kayıtlı sorgular

Chrome 132'de, kayıtlı sorguların desteğiyle Paylaşılan Depolama Alanı'nda Select URL API ile ilgili güncellemeler kullanıma sunuyoruz.

Neler değişecek?

Seçili URL API'sinde şu anda her sayfa yüklendiğinde API'ye yapılan çağrı sayısını kısıtlayan sayfa yükleme başına iki bütçe vardır. Sorguları sayfa bazında kaydedip yeniden kullanma özelliğini kullanıma sunuyoruz. Kayıtlı bir sorguyu kullandığınızda, kayıtlı sorgu ilk kez çalıştırıldığında sayfa yükleme başına bütçeler alınır ancak aynı sayfa yükleme sırasında kayıtlı sorgunun sonraki çalıştırmaları için bütçe alınmaz.

Kayıtlı sorguları uygulama

Chrome 132 sürümünden itibaren, selectURL() seçeneklerinde sorgunun adıyla birlikte savedQuery parametresini kullanabilirsiniz:

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

Takip sorgularının aynı bütçeden faturalandırılmasını sağlamak için selectURL() çağrısı için her seferinde aynı savedQuery adını kullanın.

Belgeleri bu değişiklikleri yansıtacak ve selectURL() için bütçe oluşturma hakkında ek ayrıntılar sağlayacak şekilde güncelledik.

Etkileşim kurma ve geri bildirim paylaşma

Shared Storage API önerisinin aktif olarak tartışılıp geliştirildiğini ve bu nedenle değişiklik olabileceğini unutmayın.

Shared Storage API hakkındaki görüşlerinizi öğrenmek isteriz.

Gelişmeleri takip edin

  • Posta Listesi: Paylaşılan Depolama API'si ile ilgili en son güncellemeler ve duyurular için posta listemize kaydolabilirsiniz.

Yardıma mı ihtiyacınız var?