HTML5   发布时间:2022-04-25  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了HTML5 Web SQL DB – 最大表大小?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是构建一个相当复杂的 HTML5 Web应用程序的一部分,该应用程序从Web服务检索其数据以填充Web sql数据库.

一切都与测试数据相符,然后我尝试使用一些真实的数据(一个大约10列和超过180,000行的表)并遇到了一些问题.

我在500个插入的“块”中发送sql响应,然后运行事务并从Web服务获取一个响应.这工作正常,直到表达到大约9000行,然后它就不再需要了.此时数据库文件大小仍然低于2MB,我的最大大小设置为20MB,所以我不认为这是问题.

我设法用更简单的代码重新创建类似的问题,所以其他人可以看到我在说什么. (出于某种原因,我不能把它全部留在“代码块”(对不起))

//var qsParm = new Array();

var bigData = {};
bigData.webdb = {};

var readOnly = false;

bigData.webdb.open = function() {
    bigData.webdb.db = null;
    var dbSize = 20 * 1024 * 1024; // 20MB
    infinity.webdb.db = openDatabase('bigData','','bigData DATA',dbSizE);   
};

bigData.webdb.onError = function(tx,E) {
    alert('Something unexpected happened: ' + e.messagE);
};


bigData.webdb.createTable = function() {
    var db = bigData.webdb.db;
    db.transaction(function(tx) {        
        tx.executesql("create table IF NOT EXISTS [MattTest] ([Foo] VARCHAR(32) PRIMary KEY ASC,[Bar] VARCHAR(20),[Will] VARCHAR(100),[Smith] VARCHAR(100))",[]);

    });

    db.transaction(function(tx) {
        var i=0;
        for(i=0; i<19000; i++)

            tx.executesql("INSERT INTO [MattTest] (Foo,Bar,Will,Smith) VALUES (?,?,?)",['Foo' + i,'Bar','Now this is the story all about how My life got flipped turned upside down','And Id like to take a minute just sit right there Ill tell you how I became the prince of a town called Bel Air']);
        }

    });
};

请忽略字符串值,它只是填充varchar大小(sqlite似乎不填充char类型).

在上面的“19000”次迭代(或下面的任意数字)中,将在Chrome中创建表格,并正确输入所有数据.数据库大约4MB. Safari会让我添加更多行,我在Safari中的数据库大小可达10MB左右.

如果我尝试@L_489_19@表格的内容并将迭代次数增加到20,000,则Chrome无法完成交易.

有没有人对可能导致这种情况的原因有任何想法?

我希望我已经详细解释了这个问题.如果我太模糊,请随时提出任何问题.

谢谢你的帮助.

更新:我尝试添加一些错误处理,响应是“约束失败”.我对可能导致这种情况的原因做了一些研究,但我仍在努力寻找答案.

解决方法

我认为你正在使用硬编码的5MB Websql数据库大小限制.我可以验证您的代码是否在您描述时失败,就像数据库大小突破5120K(最新)Chrome v8.0.552.215

错误消息表明已超出允许的内存等.据我所知,Chrome不使用Websql DB大小参数.

关于这个on the Chromium group的更多讨论

约束错误可能是一个单独的问题,因为您可以通过尝试INSERT重复记录来引发此类错误.只需多次运行插入示例代码而不调整迭代初始化和绑定参数就可以导致这种情况.

大佬总结

以上是大佬教程为你收集整理的HTML5 Web SQL DB – 最大表大小?全部内容,希望文章能够帮你解决HTML5 Web SQL DB – 最大表大小?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。