Web SQL Database API, yapmanıza olanak tanır. kullanıcının bilgisayarında yapılandırılmış bir şekilde depolamak için (dahili olarak veritabanı motoru) karşılaştırdık. Nisan 2009'da kullanıma sunuldu ve Kasım 2010'da terk edildi. Safari'yi destekleyen WebKit'te uygulanmış ve Chrome'u çalıştıran Blink motoru), Firefox'u çalıştıran Gecko ve bu özelliği kullanarak WebKit bunu 2019'da kaldırmıştır.
World Wide Web Konsorsiyumu (W3C)
teşvik eder
benimsenmesi için
web veritabanlarına ihtiyaç duyan
Web Storage API'si
iş yönetimi yazılımları
localStorage
ve
sessionStorage
veya
IndexedDB.
Bu teknolojilerin güçlü yanlarını, anahtar/değer depoları ve
yapılandırılmış veridir ancak en az 100 kullanıcı arasında
güçlü bir sorgu dili olabilir. Kullanıcıların web'de SQL istemesinin bir nedeni var.
Web SQL'in kullanımdan kaldırılması ve kaldırılması adımları
- [ Tamamlandı.] Web SQL kullanımdan kaldırıldı ve şurada üçüncü taraf bağlamları için kaldırıldı: Chromium 97 ( 4 Ocak 2022).
- [ Tamamlandı.] Güvenli olmayan bağlamlarda Web SQL erişimi şu tarihte kullanımdan kaldırıldı: Chromium 105 ( 4 Ocak 2022) itibarıyla bir uyarı mesajı Chrome Geliştirici Araçları Sorun panelinde gösterildi.
- [ Tamamlandı.] Güvenli olmayan bağlamlarda Web SQL erişimi artık kullanılmıyor Chromium 110 ( 4 Ocak 2022). Özelliği kullanmaya devam etmek için kurumsal politikaya şuradan ulaşabilirsiniz: Chromium 110 4 Ocak 2022) Chromium 123'e ( 4 Ocak 2022).
- [ Tamamlandı.] Tüm bağlamlarda Web SQL erişimi şu tarihte kullanımdan kaldırılmıştır: Chromium 115 ( 4 Ocak 2022) işlem yapılır ve bir uyarı mesajı gösterilir. "Chrome Geliştirici Araçları Sorun" panelinde
- [denemenin Web SQL'i kullanmaya devam etme özelliği Chromium 117'den edinilmiştir ( 4 Ocak 2022) Chromium 123'e ( 4 Ocak 2022). Desteği sonlandırılan denemeler hakkında daha fazla bilgi edinmek için Kaynak denemelerini kullanmaya başlayın. Tamamlandı.] CEVAP
- [ Tamamlandı.] Tüm bağlamlarda Web SQL erişimi artık kullanılamayacak Chromium 119'dan alınmıştır.
Şimdi beni ne bekliyor?
Girişte de belirttiğimiz gibi,
Web Storage API'si
iş yönetimi yazılımları
localStorage
ve
sessionStorage
,
veya
IndexedDB
standartlar pek çok durumda iyi alternatiflerdir ancak
açık artırmayla her durumda desteklenmemektedir.
Depolama alanını web geliştiricilere bırakma gerekçesi
Wasm'ın ortaya çıkmasıyla SQL veya NoSQL çözümleri web'e yayılabilir. Bir örnek DuckDB-Wasm, absurd-sql. Bu yapımlara dayanarak geliştirici topluluğunun yinelemeler gerçekleştirebileceğini ve yeni depolama alanı oluşturabileceğini daha hızlı ve daha iyi çözümler sunar.
Yalnızca Web SQL'i kaldırmayı planlamıyoruz. Hatta bunun yerine bir şey açık kaynak topluluğu tarafından sağlanacak ve düzeltmeleri ve yeni özellikleri ekleme yükü olmadan istenildiği zaman güncellenebilir. doğrudan tarayıcılara gönderebilirsiniz. Amacımız, geliştiricilerin en iyi uygulamaları web'e taşıyabiliyorsunuz.
Dahası, bu örneğin yeni bir ekosisteme çok daha güçlü bir hale gelecektir! Oyunun yayınlanması dosya sistemi erişim herkese açık kullanıcı adları Son olarak da, veri kümelerinde özel depolama çözümlerinin geliştirmenizi sağlar.
Web SQL'in kullanımdan kaldırılma nedenleri
Sürdürülebilirlik ve güvenlikle ilgili endişeler
Web SQL spesifikasyonu sürdürülebilir bir şekilde uygulanamıyor. Bu durum, ve yeni özelliklerle tanışın. Standardın gerçek anlamda son sürümü states "Kullanıcı aracıları, Sqlite 3.6.19" tarafından desteklenen SQL diyalektini uygulayın.
SQLite başlangıçta kötü amaçlı SQL ifadeleri çalıştırmak üzere tasarlanmış ancak Web SQL'i uygulamak, tarayıcıların da tam olarak bunu yapması gerekir. Güvenlik süreçlerine ayak uydurma Kararlılık düzeltmeleri, Chromium'da SQLite'ın güncellenmesini belirtir. Bu yöntem doğrudan Web SQL'in tam olarak SQLite 3.6.19 gibi çalışması gerekliliğiyle çakışır.
API şekli
Web SQL, ayrıca yaşını gösteren bir API'dir. 2000'lerin sonlarının çocuğu olarak, iyi bir örnek olabilir ve laf kalabalığının aşağıdaki kod örneğindeki gibi (Nolan Lawson'ın izniyle) gösteriyor. Gördüğünüz gibi SQL ifadeleri ( SQLite SQL diyalekt) dize olarak aktarılır bazı yöntemleri inceleyelim.
openDatabase(
// Name
'mydatabase',
// Version
1,
// Display name
'mydatabase',
// Estimated size
5000000,
// Creation callback
function (db) {
db.transaction(
// Transaction callback
function (tx) {
// Execute SQL statement
tx.executeSql(
// SQL statement
'create table rainstorms (mood text, severity int)',
// Arguments
[],
// Success callback
function () {
// Execute SQL statement
tx.executeSql(
// SQL statement
'insert into rainstorms values (?, ?)',
// Arguments
['somber', 6],
// Success callback
function () {
// Execute SQL statement
tx.executeSql(
// SQL statement
'select * from rainstorms where mood = ?',
// Arguments
['somber'],
// Success callback
function (tx, res) {
// Do something with the result
var row = res.rows.item(0);
console.log(
'rainstorm severity: ' +
row.severity +
', my mood: ' +
row.mood,
);
},
);
},
);
},
);
},
// Error callback
function (err) {
console.log('Transaction failed!: ' + err);
},
// Success callback);
function () {
console.log('Transaction succeeded!');
},
);
},
);
Bu kodu çalıştırıp oluşturulan tabloyu Chrome Geliştirici Araçları ile inceleme, sonuç şudur:
Uygulama uzmanı desteğinin olmaması
Gizemli API şeklinin dışında (en azından bugünün bakış açısından), Mozilla birçok endişeler hakkında daha fazla bilgi edinin:
"[SQLite]'ın, genel web'de kullanıma açık bir API için doğru temel olduğunu düşünmüyoruz 10-15 dakika yeter. Çünkü YouTube'da güvenilir, bir standarttan ibarettir. Ayrıca, kampanyalarınızı etkilemek için SQLite'a geri dönmesini öneririz. Büyük tarayıcılardan kullanıma sunmak (ve bir web standardını) kullanmak ihtiyatlı."
Mozilla'nın endişelerini öğrenmek için eski Mozillan Vladimir Vukićević'in blog yayını. Daha fazla tarih için W3C Web Uygulamaları Çalışma Grubu dakikaları (ve gerçekten ayrıntılara girmek istiyorsanız IRC günlükleri) ve posta listesi arşivleri gibi). Ayrıca, Nolan Lawson'ın blog yayını yaşananlara dair iyi bir genel bakış sağlıyor.
Geri bildirim
Bu e-postada açıklanan kullanımdan kaldırma adımlarıyla ilgili herhangi bir endişeniz varsa bize bildirmek için blink-dev posta listesi. Bu gruptaki üyelik herkese açıktır ve herkesin mesaj göndermesine izin verilir.
İlgili bağlantılar
- ChromeDurum girişi: Üçüncü taraf bağlamında WebSQL desteğini sonlandırma ve WebSQL'i kaldırma
- ChromeDurum girişi: Güvenli olmayan bağlamlarda WebSQL desteğini sonlandırma ve WebSQL'i kaldırma
- Kullanımdan Kaldırma ve Kaldırma Amacı: Üçüncü taraf bağlamında WebSQL
- Kullanımdan Kaldırma ve Kaldırma Amacı: Güvenli olmayan bağlamlarda WebSQL
- Chromium sorunu: Üçüncü taraf bağlamında WebSQL desteğini sonlandırma ve WebSQL'i kaldırma
- Chromium sorunu: Güvenli olmayan bağlamlarda WebSQL desteğini sonlandırma ve WebSQL'i kaldırma
- Chromium sorunu: WebSQL desteğini sonlandır ve kaldır (Window#openDatabase)
- Kaynak Özel Dosya Sistemi tarafından desteklenen tarayıcıdaki SQLite Wasm
Teşekkür
Bu makale Joe Medley ve Ben Morss ve Joshua Bell.