2011-11-15 95 views
1

我今天正在查看一個grepmonkey腳本,試圖找出爲什麼它不再工作。玩了一段時間後,我意識到它在firefox 3.6上運行良好,但不會在當前版本(8)等更高版本上運行。Firefox中的WebSQL

經過一番谷歌搜索,我登陸了here

我不確定是否正確閱讀此內容。由於標準化過程已經陷入「僵局」,因爲除了SQLite之外,沒有其他的實現方式,因此WebSQL完全從Firefox中刪除?這是否意味着依賴於WebSQL的greasemonkey腳本需要ff 3.6才能正常運行?

我不知道有多難可能是簡單地叉的SQLite到NotSQLite和具有標準化進程繼續...

+0

Firefox在Firefox中從不支持WebSQL。所以如果你的腳本在3.6中工作,它不會使用WebSQL。 –

+0

你確定鮑里斯Zbarsky?這是有問題的腳本:http://userscripts.org/scripts/review/81875 – Dexter

+0

它看起來像[腳本](http://userscripts.org/scripts/review/81875)在運行時使用'sessionStorage' Firefox瀏覽器。注意'if(DataStorage.hasLocalSQLiteStorage())'語句的'else'子句中的所有'unsafeWindow.sessionStorage ...'代碼?如果它在後來的FF版本中停止工作,則可能會發生其他情況。 –

回答

2

火狐也不會自己砍掉的WebSQL; the W3C has declared it dead

請注意,Firefox still uses SQLite,這是不一樣的WebSQL。但是,Greasemonkey腳本不能直接訪問SQLite。

您可以使用sessionStorage, localStorage, and/or globalStorage來保存值。您可以使用use IndexedDB這是WebSQL的替代品。

最後,對於全功能SQL功能,存在舊標準AJAXing data back and forth to your own server

顯然,由於缺乏持續的支持以及增加安全漏洞的確定性,繼續使用FF 3.6並不是一個好主意。

+0

感謝您的評論。由於似乎沒有辦法進行重大改寫,我可能會選擇使用chrome。這種爲Mozilla的棺材釘上最後的釘子。 – Dexter

+1

我想我記得在大約一年的時間裏,Chrome會放棄對WebSQL的支持。但我目前沒有鏈接。 –

1

你可能會注意到Firefox中有一個SQLite的新選項 - SQL.js。這是一個使用Emscripten將原始C代碼轉換爲可運行JavaScript的JavaScript代碼庫。您可以將整個SQLite環境加載到Firefox(或Chrome或Safari或IE10)中,並在內存中創建一個新的數據庫。如果你需要堅持下去,這可能有點棘手,但你可以根據需要將你的數據寫入localStorage。

如果您想在行動中看到這個代碼,你可以在這裏看看:http://sqlfiddle.com/#!5/781d4/2

如果你想它的WebSQL比較,你可以這樣做,在SQL小提琴太:http://sqlfiddle.com/#!7/04eca/1 (顯然只適用於支持WebSQL的瀏覽器)。

完全披露 - sqlfiddle.com是我的網站。您可能會對我爲SQL.js編寫的一些界面代碼感興趣,但請參閱此處:https://github.com/jakefeasel/sqlfiddle/blob/master/javascripts/sqljs_driver.js