W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
APICloud為開發(fā)者提供了多種本地數(shù)據(jù)存儲方案,包括Local Storage、偏好數(shù)據(jù)、文件和數(shù)據(jù)庫等,以滿足不同規(guī)模數(shù)據(jù)存儲需求。其中Local Storage和偏好數(shù)據(jù)一般用于存儲比較簡單、規(guī)模較小的數(shù)據(jù),而文件和數(shù)據(jù)庫多用于存儲大量數(shù)據(jù),并且利于管理。
APICloud對html5的Local Storage進行了封裝,在存儲時更加方便。通過$api對象的setStorage方法不僅可以存儲字符串,還可以直接存儲JSON對象,而getStorage獲取時也可以直接得到JSON對象。用法如下:
var key = 'user';
var user = {};
user.name = 'kenny';
user.email = 'kenny@163.com';
$api.setStorage(key, user);
user = $api.getStorage(key);
適用于少量的偏好設(shè)置數(shù)據(jù)的存儲,一般用于保存一些狀態(tài)值等,不推薦大量的數(shù)據(jù)通過此方式存儲。 api對象提供了setPrefs、getPrefs、removePrefs方法,以鍵值對的方式傳入?yún)?shù),進行設(shè)置、獲取和移除等,例如記錄應(yīng)用是否是第一次啟動:
api.setPrefs({
firstLaunch:false
});
具體參數(shù)及用法請參考api文檔(未處理)中的說明。
APICloud為開發(fā)者提供了文件和文件夾相關(guān)操作API,包括創(chuàng)建、移動、刪除文件和文件夾等,以及文本內(nèi)容的讀寫操作。 其中api對象提供了基本的readFile、writeFile方法,支持整個文件內(nèi)容的讀寫操作,其讀寫文件示例代碼如下:
api.readFile({
path: 'fs://a.txt'
}, function(ret, err){
if(ret.status){
var data = ret.data;
}
});
api.writeFile({
path: 'fs://a.txt',
data:'writeFile測試內(nèi)容'
}, function(ret, err){
if(ret.status){
api.alert({msg:'寫入文件成功'});
} else{
api.alert({msg:err.msg});
}
});
若要使用更加豐富的文件操作API,則需要引入fs模塊,該模塊詳細定義了文件和文件夾的相關(guān)操作,并且支持文本內(nèi)容的指定位置讀寫,其寫文件示例代碼如下:
var fs = api.require('fs');
fs.open({
path:'fs://test.txt',
flags:'read_write'
},function(ret, err) {
if (ret.status) {
var fd = ret.fd; //fd為文件句柄
fs.write({
fd:fd,
data:'text',
offset:0
},function(ret,err){
if (ret.status) {
api.alert({msg:'write操作成功'});
} else{
api.alert({msg:err.msg});
}
});
}
});
其它方法請參考fs模塊文檔。
APICloud為開發(fā)者提供了操作本地數(shù)據(jù)庫的接口,但需要開發(fā)者熟悉基本的SQL語句,如創(chuàng)建表、插入和更新數(shù)據(jù)、獲取數(shù)據(jù)等操作。
db模塊提供了數(shù)據(jù)庫相關(guān)操作API,詳見db模塊文檔。部分示例代碼如下:
創(chuàng)建一張名為Persons的表:
var db = api.require('db');
var sql = 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255),
Address varchar(255), City varchar(255))';
db.executeSql({
name: 'databaseName',
sql: sql
}, function(ret, err){
if(ret.status){
api.alert({msg:'創(chuàng)建表成功'});
} else{
api.alert({msg:err.msg});
}
});
從Persons表里面查詢數(shù)據(jù):
var db = api.require('db');
var sql = 'SELECT * FROM Persons';
db.selectSql({
name:'databaseName',
sql: sql
}, function(ret, err){
if(ret.status){
var data = ret.data;
} else{
};
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: