0

是否可以使用 chrome 或 ie8 ,9 和 10 读取和写入本地sqlite文件。

在本地的 Javascript 中看到了这个 SQLite 数据库, 但是 html 页面上的 javascript 部分中的这段代码似乎没有创建数据库。

 <script type="text/javascript">

    //https://stackoverflow.com/questions/5244471/sqlite-database-in-javascript-locally?rq=1

    function createDatabase(){
        try{
            if(window.openDatabase){
                var shortName = 'db_xyz';
                var version = '1.0';
                var displayName = 'Display Information';
                var maxSize = 65536; // in bytes
                db = openDatabase(shortName, version, displayName, maxSize);
            }
        }catch(e){
            alert(e);
        }
    }
4

1 回答 1

0

要实现这个目标,你需要两件事。

  1. 您需要读取文件系统中的选定文件
  2. 除非浏览器支持,否则您需要在 javascript 中实现 sqlite(可能已经实现)

在客户端存储数据有多种可选方法:

  1. 本地存储
  2. 会话存储
  3. 曲奇饼
  4. 文件缓存

在这些中,最可靠的是cookie。不好的副作用是对您网站的每个请求都会将 cookie 转发到您的 http 服务器(在 http 请求标头内),除此之外,cookie 的存储配额限制为 4kb。因此,如果您存储 2 个 cookie,则每个 2kb 或第一个 1kb 和第二个 3kb。

localStorage:Chrome 为 2.5 MB,Firefox 和 Opera 为 5 MB,Internet Explorer 为 10 MB。

好的部分:

  1. 它将被存储直到它被擦除
  2. 它可以在基于键值的架构上访问。localStorage["foo"] = "bar";

不好的部分是它只能通过 javascript 访问。

sessionStorage 与 localStorage 相同,但是一旦您关闭浏览器,它将被删除。

文件缓存就像资源黑客。您可以将包含您要存储的所有数据的唯一文件转发给用户,并让它每次都从缓存中读取。

坏的部分:

  1. 达到离线存储配额后将被删除
  2. 需要由您的网络服务器设置
  3. 除非您可以使用它,否则这是个坏主意。

现在为什么我没有提到如何使用sql?

要在 IE 中读取文件,您只需使用 ActiveX 组件即可。这要求用户设置了低安全设置,并且用户实际上允许网站获得文件访问权限。

用于在 chrome 和其他浏览器中读取文件或支持 html5 的 IE 的替代方法:

  1. 您可以通过将文件拖到浏览器窗口中来读取文件
  2. 您还可以通过在文件选择框中选择文件来读取文件
  3. 您可以通过插件读取文件

第三种读取文件的方法是最可靠的,但它要求用户启用 java。

通过java你可以读取文件。

现在是 sqlite 部分:

  1. 你可以在 javascript 中实现 sqlite。(我不想那样做)
  2. 您可以将过时的 sqlite 数据库用于 html5。(这就是你所要求的)它已被 localStorage 取代。
  3. 您可以在 java 或浏览器插件中实现它。(也许更容易,但我还是更喜欢 localStorage)

也许这对你有帮助。

于 2013-04-01T10:20:02.133 回答