वेब एसक्यूएल को बंद करना और हटाना

वेब एसक्यूएल डेटाबेस एपीआई, जो आपको उपयोगकर्ता के कंप्यूटर पर व्यवस्थित तरीके से डेटा स्टोर करने के लिए (आंतरिक रूप से SQLite डेटाबेस इंजन), तो अप्रैल 2009 में लॉन्च किया गया और नवंबर 2010 में इसे छोड़ दिया गया. हालांकि, इसे WebKit (जिसकी मदद से Safari में इस्तेमाल होता है) में लागू किया गया था और Blink इंजन (जो Chrome को चलाता है), Gecko (जो Firefox को चलाता है) कभी नहीं ने इस सुविधा को लागू किया और WebKit ने इसे 2019 में हटा दिया था.

द वर्ल्ड वाइड वेब कंसोर्टियम (W3C) बढ़ावा देता है जिन्हें अपनाने के लिए वेब डेटाबेस की ज़रूरत होती है वेब स्टोरेज एपीआई टेक्नोलॉजी localStorage और sessionStorage, या IndexedDB. जब बात की/वैल्यू स्टोर की बात आती है, तब ये टेक्नोलॉजी अपनी ताकत दिखाती हैं और स्ट्रक्चर्ड डेटा का इस्तेमाल किया जाता है. हालांकि, मुमकिन है कि इसमें कुछ खामियां भी हों. जैसे, मज़बूत क्वेरी भाषा का इस्तेमाल करें. लोग किसी वजह से वेब पर एसक्यूएल का इस्तेमाल करना चाहते हैं.

Web SQL के बंद होने और हटाने के तरीके

  • [ हो गया.] इसमें, Web SQL को तीसरे पक्ष के कॉन्टेक्स्ट के लिए बंद करके हटा दिया गया है Chromium 97 ( 4 जनवरी, 2022).
  • [ हो गया.] असुरक्षित कॉन्टेक्स्ट में वेब एसक्यूएल के ऐक्सेस को इस तारीख से बंद कर दिया गया है Chromium 105 ( 4 जनवरी, 2022) जब चेतावनी वाला मैसेज दिखता था, Chrome DevTools समस्या पैनल में दिखाया गया था.

Chrome DevTools की समस्याओं वाले पैनल को बंद कर दिया गया है. इस पैनल में, वेब एसक्यूएल को असुरक्षित कॉन्टेक्स्ट में पढ़ने पर चेतावनी दी गई है.

  • [ हो गया.] असुरक्षित कॉन्टेक्स्ट में वेब एसक्यूएल का ऐक्सेस अब नहीं है Chromium 110 ( 4 जनवरी, 2022). अगर आप इस सुविधा का इस्तेमाल जारी रखने के लिए, एंटरप्राइज़ नीति उपलब्ध है Chromium 110 ( 4 जनवरी, 2022) से Chromium 123 पर ( 4 जनवरी, 2022).
  • [ हो गया.] इस तारीख से, सभी कॉन्टेक्स्ट में वेब एसक्यूएल का ऐक्सेस बंद हो गया है Chromium 115 ( आपको एक चेतावनी का मैसेज भी दिखेगा. Chrome DevTools समस्या पैनल में.
  • [ हो गया.] ऐप्लिकेशन रोकने का ट्रायल शुरू करके वेब एसक्यूएल का इस्तेमाल जारी रखें, यह Chromium 117 पर उपलब्ध था ( 4 जनवरी, 2022) से Chromium 123 ( 4 जनवरी, 2022). बंद होने के ट्रायल के बारे में ज़्यादा जानने के लिए, यहां देखें ऑरिजिन ट्रायल का इस्तेमाल शुरू करें.
  • [ हो गया.] सभी कॉन्टेक्स्ट में वेब एसक्यूएल का ऐक्सेस अब उपलब्ध नहीं है Chromium 119 से.

यहां से कहां जाएं

जैसा कि शुरुआत में बताया गया है, Web Storage API टेक्नोलॉजी localStorage और sessionStorage, या IndexedDB कई मामलों में स्टैंडर्ड भी अच्छे विकल्प हैं. हालांकि, अब तक सभी मामलों में ऐसा नहीं हो सका.

वेब डेवलपर के लिए स्टोरेज छोड़ने की वजह

Wasm के आने के बाद, एसक्यूएल या NoSQL सलूशन, वेब पर आ सकते हैं. एक उदाहरण DuckDB-Wasm है, दूसरा बेतुका-sql. इन नतीजों के आधार पर, हमें लगता है कि डेवलपर कम्यूनिटी बार-बार और स्टोरेज इस्तेमाल करने के साथ-साथ नया स्टोरेज बना सकती है और ब्राउज़र वेंडर की तुलना में ज़्यादा तेज़ और बेहतर समाधान प्रदान करते हैं.

हम सिर्फ़ वेब एसक्यूएल को हटाने के बारे में नहीं सोच रहे हैं. असल में, हमने इसे कुछ जिसका रखरखाव ओपन सोर्स समुदाय करेगा, जिसका इस्तेमाल अपने-आप अपडेट होने की सुविधा मिलती है. इसके लिए, सुझाव देने वाले सिस्टम या नई सुविधाओं को शुरू करने की ज़रूरत नहीं पड़ती का उपयोग कर सकते हैं. हमारा मकसद है कि डेवलपर आसानी से अपने वेब पर खुद का डेटाबेस बना सकते हैं.

हमें उम्मीद है कि इस उदाहरण से लोगों को सीखने के लिए, ओपन सोर्स डेटाबेस बनाए! इसकी रिलीज़ फ़ाइल सिस्टम के ऐक्सेस हैंडल आखिरकार, एक नया प्रिमिटिव है जो कस्टम स्टोरेज सलूशन के लिए इस्तेमाल की जा सकती है बनाया.

वेब एसक्यूएल की सुविधा को बंद करने की वजहें

स्थिरता और सुरक्षा से जुड़ी चिंताएं

Web SQL के स्पेसिफ़िकेशन को ईको-फ़्रेंडली तरीके से लागू नहीं किया जा सकता. इससे ये सीमाएं तय होती हैं जिसमें नए बदलावों के बारे में बताया गया है. स्टैंडर्ड का आखिरी वर्शन राज्य "उपयोगकर्ता एजेंट को यह ज़रूरी है Sqlite 3.6.19" के साथ काम करने वाली एसक्यूएल भाषा लागू करें.

SQLite शुरुआत में नहीं था इसे नुकसान पहुंचाने वाले एसक्यूएल स्टेटमेंट चलाने के लिए डिज़ाइन किया गया है. हालांकि, इसमें Web SQL के तरीके ब्राउज़र को ठीक यही काम करना होगा. सुरक्षा और नीतियों से जुड़े रहना ज़रूरी है स्थिरता से जुड़े सुधार, Chromium में SQLite को अपडेट करने के बारे में बताते हैं. यह सीधे SQLite 3.6.19 की तरह ही काम करने के लिए, Web SQL की ज़रूरी शर्तों से मेल नहीं खाता.

एपीआई का आकार

Web SQL एक एपीआई भी है, जो इसकी उम्र दिखाता है. हम 2000 के दशक के आखिरी में बने "बैकबैक हेल" का बेहतरीन उदाहरण, नीचे दिए गए कोड सैंपल के तौर पर सबमिट करें (नोलन लॉसन के सौजन्य से) दिखाता है. जैसा कि आप देख सकते हैं, SQL स्टेटमेंट ( SQLite एसक्यूएल भाषा) को स्ट्रिंग के तौर पर पास किया जाता है में बदल दिया जाता है.

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!');
      },
    );
  },
);

अगर आपको इस कोड को चलाना होता और Chrome DevTools की मदद से, बनाई गई टेबल की जांच करना, यह रहा नतीजा:

Chrome DevTools में वेब एसक्यूएल सेक्शन की जांच करने पर, mydatabase दिखाई देता है. इसमें रेनस्टॉर्म नाम की टेबल होती है. इस टेबल में कॉलम मूड (टेक्स्ट आधारित) और गंभीरता (इंटीजर) होता है. इसमें एक एंट्री में मूड के हिसाब से और छह की गंभीरता होती है.

इस टूल को लागू करने के लिए ज़रूरी सहायता की कमी है

आर्केन एपीआई के आकार (कम से कम आज के नज़रिए से) के अलावा, Mozilla कई थे परेशानियां SQLite पर बनाए जा रहे Web SQL के बारे में:

"हमें नहीं लगता कि [SQLite], सामान्य वेब पर उपलब्ध एपीआई के लिए सही है सबसे कम नहीं, क्योंकि यहां दुनिया भर में भरोसेमंद और यह एक स्टैंडर्ड है, जो SQL को मददगार तरीके से सबसेट करता है. साथ ही, हम इन टूल में बदलाव नहीं करना चाहते को SQLite के लिए रिलीज़ (और एक वेब मानक) सही होती है."

आप यहां Mozilla की समस्याओं के बारे में पढ़ सकते हैं मोज़िलान व्लादिमीर वुकिचेविच का ब्लॉग पोस्ट. कुछ और इतिहास के लिए, यहां देखें: W3C वेब ऐप्लिकेशन वर्किंग ग्रुप मिनट (और, अगर आपको वाकई में ज़्यादा जानकारी चाहिए, तो आईआरसी लॉग) और मेलिंग की सूची का संग्रह). इसके अलावा, नोलन लॉसन की ब्लॉग पोस्ट की मदद से इस बात की पूरी जानकारी दी जाती है कि क्या हुआ.

सुझाव/राय दें या शिकायत करें

अगर आपको सेवा बंद करने के उन चरणों को लेकर कोई चिंता है जो पोस्ट करने के लिए, blink-dev की ईमेल पाने वाले लोगों की सूची. इस समूह की सदस्यता सभी के लिए खुली है और कोई भी पोस्ट कर सकता है.

स्वीकार की गई

इस लेख की समीक्षा जो मेडली ने की है और बेन मोर्स, और जोशुआ बेल.