2011-06-01 8 views
55

में स्क्लाइट क्या क्रोम एक्सटेंशन बनाना संभव है जो स्क्वाइट डेटाबेस के साथ इंटरफेक्ट करता है जैसे फ़ायरफ़ॉक्स एक्सटेंशन? क्या आप मुझे कुछ सलाह या लिंक दे सकते हैं जहां स्क्वाइट के साथ बातचीत करने वाले क्रोम एक्सटेंशन को विकसित करने के बारे में अधिक जानकारी है?क्रोम

धन्यवाद

उत्तर

12

क्रोम WebDatabase API का समर्थन करता है (जो SQLite द्वारा संचालित है), लेकिन लग रहा है W3C की तरह अपने development बंद कर दिया।

+0

क्या मैं क्रोम से मुझे स्क्लाइट डेटाबेस से कनेक्ट कर सकता हूं और कुछ चुनिंदा, सम्मिलित, अद्यतन, बयान हटा सकता हूं? – xralf

+0

@xralf यदि आपका मतलब बाहरी स्क्लाइट स्थापना है तो नहीं। क्रोम अंतर्निहित स्क्लाइट के साथ आता है जिसका आप उपयोग कर सकते हैं (डेटाबेस बनाएं, चयन करें आदि) – serg

24

आप Web SQL API जो आपके ब्राउज़र में एक साधारण SQLite डेटाबेस का उपयोग कर सकते हैं और आप को खोलने/Lita साथ उदाहरण के लिए किसी अन्य SQLite डेटाबेस की तरह इसे संशोधित कर सकते हैं।

क्रोम स्वचालित रूप से डोमेन नाम या एक्सटेंशन आईडी के अनुसार डेटाबेस को रेखांकित करता है। कुछ महीने पहले मैंने how to delete Chrome's database पर अपने ब्लॉग शॉर्ट आलेख पर पोस्ट किया क्योंकि जब आप कुछ कार्यक्षमता का परीक्षण कर रहे हैं तो यह काफी उपयोगी है।

+0

मैं फ़ायरफ़ॉक्स और क्रोम से समान SQL डेटाबेस का उपयोग करना चाहता हूं। क्या यह वेब एसक्यूएल एपीआई के साथ संभव है? – xralf

+1

निश्चित रूप से वेब एसक्यूएल एपीआई के साथ नहीं।शायद एनपीएपीआई (http://code.google.com/chrome/extensions/npapi.html) के साथ लेकिन यह बहुत मुश्किल होगा। आपको एक ही डेटाबेस साझा करने की आवश्यकता क्यों है? हो सकता है कि आप कुछ बाहरी डेटाबेस (जैसे Google ऐप इंजन) का उपयोग कर सकें और आपके एक्सटेंशन (क्रोम और फ़ायरफ़ॉक्स के लिए) इसके साथ संवाद करेंगे ... बस एक विचार :)। – martin

+0

डेटाबेस के बीच फाइल सिस्टम-स्तर लिंक सेट करना संभव होगा? कोशिश करने के लिए यह एक दिलचस्प प्रयोग होगा। – technomalogical

17

आप sql.js का उपयोग करने में सक्षम हो सकते हैं।

sql.js जावास्क्रिप्ट के लिए SQLite का एक बंदरगाह है, जो SQLiteC कोड को Emscripten के साथ संकलित करता है। यहां कोई सी बाइंडिंग या नोड-जीईपी संकलन नहीं है।

<script src='js/sql.js'></script> 
<script> 
    //Create the database 
    var db = new SQL.Database(); 
    // Run a query without reading the results 
    db.run("CREATE TABLE test (col1, col2);"); 
    // Insert two rows: (1,111) and (2,222) 
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]); 

    // Prepare a statement 
    var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end"); 
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111} 

    // Bind new values 
    stmt.bind({$start:1, $end:2}); 
    while(stmt.step()) { // 
     var row = stmt.getAsObject(); 
     // [...] do something with the row of result 
    } 
</script> 

sql.js एक भी JavaScript फ़ाइल है और वर्तमान में आकार में 1.5MiB बारे में है। हालांकि यह वेब पेज में एक समस्या हो सकती है, आकार शायद विस्तार के लिए स्वीकार्य है।

+1

यह ध्यान दिया जाना चाहिए कि यह एकमात्र पेशकश है जो संभावित रूप से मौजूदा डीबी से जुड़ती है – dandavis

3

मैं काफी यकीन है कि अगर आप का मतलब 'मैं क्रोम में SQLite (WebSQL) का उपयोग कर सकते' या 'मैं फ़ायरफ़ॉक्स में SQLite (WebSQL) का उपयोग कर सकते' नहीं कर रहा हूँ, इसलिए मैं दोनों जवाब देंगे:

  • आप फ़ायरफ़ॉक्स में WebSQL का उपयोग नहीं कर सकते हैं। (sql.js एक विकल्प है, लेकिन वास्तव में, डेटाबेस के लिए 1.5 एमबी जेएस?)
  • आप निश्चित रूप से क्रोम एक्सटेंशन में WebSQL का उपयोग कर सकते हैं। See for instance the webkit window.openDatabase docs for an introduction

ध्यान दें कि WebSQL एक .sqlite डेटाबेस में पूर्ण-एक्सेस पाइप नहीं है। यह वेबएसक्यूएल है। आप VACUUM

कुछ विशिष्ट प्रश्नों को चलाने में सक्षम नहीं होंगे, हालांकि यह बनाएं/पढ़ें/अपडेट/हटाएं के लिए बहुत ही बढ़िया है। मैंने एक छोटी सी लाइब्रेरी बनाई है जो टेबल और पूछताछ बनाने जैसे सभी परेशान नटी किरकिराओं के साथ मदद करता है और संबंधों और सभी के साथ एक छोटा ओआरएम/एक्टिव रिकार्ड पैटर्न प्रदान करता है और उदाहरणों का एक बड़ा ढेर जो आपको किसी भी समय शुरू नहीं करना चाहिए, you can check that here

इसके अलावा, ध्यान रखें कि यदि आप फ़ायरफ़ॉक्स एक्सटेंशन बनाना चाहते हैं: Their extension format is about to change. सुनिश्चित करें कि आप दो बार निवेश करना चाहते हैं।

जबकि वेबस्क्लुएल स्पेक को वर्षों से बहिष्कृत कर दिया गया है, फिर भी 2017 में अभी भी ऐसा नहीं लगता है कि यह क्रोम से निकटतम समय के लिए हटा दिया जाएगा। They are tracking usage statistics and there are still a large number of chrome extensions and websites out there in the real world implementing the spec