HTML5 Web SQL 数据库问题

2024-01-12

我的公司目前正在过渡到新的架构以及为移动设备提供服务的模型。我们的应用程序传统上是基于网络的(HTML5/CSS3/JS/PHP/MYSQL),所以我们希望能够将其移植到移动平台,而不必重新发明轮子(Cordova),以及以独立方式连接到桌面(AppJS)这样我们就不必担心与浏览器相关的错误。我们也正在从PHP to NodeJS使这更加可行。

问题是,我们的用户需要能够离线使用我们的应用程序,而在将其“同步”到我们的服务器之前,他们可以存储多长时间或多少数据,没有真正的限制。

对于 AppJS,这不是问题,因为它们可以在 sqlite 数据库中存储所需的尽可能多的数据。但是,我发现了一个关于5MB配额用于 WebSQL 数据和 cordova/phonegap。这对我们的业务需求提出了明显的技术挑战。

我知道有几个插件可以让您使用 sqlite 数据。原始的 sqlite 插件(https://github.com/davibe/Phonegap-SQLitePlugin)缺乏 Android 文档,而另一个(https://github.com/chbrody/Cordova-SQLitePlugin)要求我指定一个数据限制显然不可能。因此,我只剩下很少的选择,其中一个是将数据库分割成多个由 JS 包装器控制的 5MB 段。

您能否将大型数据结构拆分为多个 5MB Websql 数据库,并且在 iOS 和 Android 上都不会出现问题?


对于 android 平台,您可以创建一个本机应用程序,然后使用 webview 来显示前端(如果保持 HTML 真的很重要),然后使用 javascript 桥来允许 WebView 中的内容与您的交互本机应用程序。

不过,根据您对应用程序的描述,我认为您最好实际创建一个本机应用程序。正如您在评论中所说,您更换平台的原因之一是缺乏控制。那么为什么要立即通过将各种混合应用程序框架引入您的堆栈来重新打开这个蠕虫罐呢?

长话短说,如果您采用本机方法,您将拥有完全的控制权(并且很可能获得更好的产品)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 Web SQL 数据库问题 的相关文章

随机推荐

  • gcc 抑制警告“太小,无法容纳所有值”

    我需要使用范围枚举 以便我可以将它们作为特定类型传递给我们的序列化程序 我已经为枚举成员给出了明确的整数值Enum1 我已将与上面的描述相匹配的两个作用域枚举放入位字段中 enum class Enum1 value1 0x0 value2
  • Recyclerview 按字母顺序滚动条

    我需要实现一个类似于三星音乐应用程序的recyclerview字母滚动条 由于信誉低 我无法发布图像 我已阅读有关此的所有帖子 但我不想要气泡卷轴 我将所有字母表都放在垂直 LinearLayout 中 我想知道如何滚动到特定项目 你可以用
  • 如何在 JavaScript 中使用 x,y 坐标模拟点击?

    是否可以使用给定的坐标来模拟网页中 JavaScript 的点击 您可以派遣一个click事件 尽管这与真正的点击不同 例如 它不能用于欺骗跨域 iframe 文档 使其认为它已被单击 所有现代浏览器都支持document elementF
  • 在Python中按索引从列表中删除元素的简洁方法

    我有一个字符列表和索引列表 myList a b c d toRemove 0 2 我想通过一次操作得到这个 myList b d 我可以做到这一点 但有没有办法做得更快 toRemove reverse for i in toRemove
  • Java FileWriter 和 BufferedWriter 的区别

    它们之间有什么区别 我刚刚学习 Java ATM 但似乎我可以两种方式写入文件 我没有在这里复制 try catch 块 FileWriter file new FileWriter foo txt file write foobar fi
  • 张量流:在多个检查点运行模型评估

    在我当前的项目中 我训练一个模型并每 100 个迭代步骤保存检查点 检查点文件全部保存到同一目录 model ckpt 100 model ckpt 200 model ckpt 300 等 之后 我想根据所有已保存检查点 而不仅仅是最新检
  • WPF 数据网格样式

    有谁知道 有如何将 WPF DataGrid 布局更改为卡片视图或其他任何东西的示例 而不仅仅是行堆栈 结果看起来像这样 替代文本 http iwebthereforeiam com files ScreenShot gif http iw
  • 如何保证训练阶段不会出现OOM?

    标题中的问题已经完成 如何保证训练阶段不会出现OOM 只是一些旁注 根据我的经验 有两种 OOM 情况 一种是模型和小批量所需的内存大于您拥有的内存 在这种情况下 训练阶段将永远不会开始 解决这个问题的解决方案是使用较小的批量大小 尽管如果
  • 使用 Argonaut 进行 Scalaz 验证

    我有一个案例类和伴随对象 case class Person private name String age Int object Person def validAge age Int if age gt 18 age successNe
  • 我们如何在 Android 中播放/缓冲几分钟的视频?

    我需要播放视频的前 2 分钟 使用 onBufferingUpdate 我得到缓冲的百分比 但当 onPrepared 被调用时 我的缓冲百分比为 40 这是一个超过 2 分钟的视频 考虑到我有一个30分钟的视频 有什么办法可以让我只播放
  • PIL / urllib2 - 使用 StringIO 传递文件时无法识别图像文件

    我正在使用 urllib2 从网络下载图像 一旦我下载了它 我想使用一个名为 PIL 的图像模块来用它做一些事情 我不想将文件保存到磁盘然后重新打开 而是使用从内存中传递它StringIO from PIL import Image ima
  • 当 ng-grid 通过 ng-hide 将可见性从不可见更改为可见时,不会重新计算网格宽度

    我有一个带有 ng hide 属性和 width 100 样式的 ng grid div class grid style style display inline block height 300px width 100 div 该网格第
  • Xcode 6 自动完成失败(<<错误类型>>)

    我正在使用 Swift 开发一个应用程序 并且在某个时候我开始遇到奇怪的 Xcode 行为 我不完全记得它是如何发生的 但自动完成功能拒绝工作 并且对于我的所有变量 类型是 gt 我尝试了这里提供的一些解决方案 但它们都不起作用 这种令人沮
  • 如何从pyspark中的数组中提取元素

    我有一个具有以下类型的数据框 col1 col2 col3 col4 xxxx yyyy zzzz 1111 2222 我希望我的输出是以下类型 col1 col2 col3 col4 col5 xxxx yyyy zzzz 1111 22
  • 在每年的每个月下划线 js 组

    这是我的输入 json data id 3 created by 1 created at 2022 01 31T07 00 01 880Z id 2 created by 1 created at 2022 01 31T07 00 01
  • IE 抛出访问被拒绝错误

    我有 2 个项目 相互连接和通信 在 2 个 tomcat 实例上运行 在我的本地 我有 2 个 tomcats 正在运行 在所有不同的浏览器上一切都很好 除了 IE 之外 它说访问被拒绝加载 Javascript 文件 所以我已经包含了一
  • Erlang 列表理解

    我正在测试一个具有两个不等式的表达式来满足列表理解的条件 有没有办法在这里进行赋值而不重复该表达式 下面的代码不起作用 但我希望它能起作用 diagnose Expertise PatientSymptoms gt CertainDisea
  • C++ const public field 与 getter 方法

    我想为某个类的每个对象添加唯一的 ID 在单个会话内 一种解决方案是使用工厂函数来增加一些静态计数器 一个更简单的解决方案是将此计数器添加到类本身 例如 class fooWithUniqueId public fooWithUniqueI
  • std::mutex 的 constexpr 构造函数是如何实现的?

    在查看 C 参考时std mutex https en cppreference com w cpp thread mutex mutex 我注意到构造函数std mutex被标记constexpr 一开始这很令人惊讶 因为我们通常必须进行
  • HTML5 Web SQL 数据库问题

    我的公司目前正在过渡到新的架构以及为移动设备提供服务的模型 我们的应用程序传统上是基于网络的 HTML5 CSS3 JS PHP MYSQL 所以我们希望能够将其移植到移动平台 而不必重新发明轮子 Cordova 以及以独立方式连接到桌面