【发布时间】:2015-01-28 15:52:59
【问题描述】:
我正在使用cordova 开发一个移动应用程序。应用程序在某些时候需要离线,这意味着它必须在内部数据库中有数据。
数据由一堆字段组成,其中一些是文件的链接。例如:
var restaurant = {
name: 'Restaurant X'
address: 'So far'
logo: http://www.restaurantX.com/logo.png
image: pics/restaurant-x.jpg
}
当用户决定离线时,我们应该从数据库中提取所有相关信息(这一点被清除)并下载所有相关图像(这是我卡住的地方)。此时我想到了两种选择,第一种是将所有文件作为文件或作为数据库中的数据下载到手机中,但是项目负责人说图像必须以blob形式保存在数据库中。
我一直在寻找一个函数来将文件的内容转换为 byte Array 以将其保存到数据库中,但我需要一个同步函数,因为我必须等待图片才能将行保存到数据库中。
function(tx, row){
var query = "INSERT INTO Restaurants (name, address, logo, image) values (?,?,?,?)";
var logo = null; // I need to fill it with the logo
var picture = null; // I need to fill it with the picture
tx.executeSql(query, [row["nombre"], row["address"],logo,picture], onSuccess, onError);
});
如果这个问题太基础了,我很抱歉,我几乎是 JavaScript 新手。
【问题讨论】:
-
but I need it syncronous because I need to save the value into the database听起来像是 XY 问题:mywiki.wooledge.org/XyProblem -
异步和同步有什么关系?向我们展示您的尝试,也许我们可以为您指明正确的方向。
-
@A.Wolff 我明白你的意思。我会尝试更具体地解决我的问题。
标签: javascript jquery cordova jquery-mobile