Javascript 如何在HTML5中处理websql的结果集?
我正在使用html5和javascript创建移动web应用程序。我有两个javascript文件。AttributesDatabase.js和AttributeView.js.From AttributeView.js我正在从AttributeDatabase.js调用一个函数,因为我正在执行一个select查询。现在查询结果应该转到AttributeView.js。但是Websql事务是异步调用,这就是它没有返回正确结果的原因。是否有任何方法来处理Websql结果。 如果有办法,请帮忙 已编辑Javascript 如何在HTML5中处理websql的结果集?,javascript,html,web-sql,Javascript,Html,Web Sql,我正在使用html5和javascript创建移动web应用程序。我有两个javascript文件。AttributesDatabase.js和AttributeView.js.From AttributeView.js我正在从AttributeDatabase.js调用一个函数,因为我正在执行一个select查询。现在查询结果应该转到AttributeView.js。但是Websql事务是异步调用,这就是它没有返回正确结果的原因。是否有任何方法来处理Websql结果。 如果有办法,请帮忙 已编
AttributeView.js
var AttributeDAOObj = new AttributeDAO();
AttributeDAOObj.GetAttributeList();
alert(AttributeDAOObj.GetAttributeList()); //This alert is coming as undefined.
AttributeDAO.js
this.GetAttributeList = function () {
var baseDAOObj = new BaseDAO();
var query = "SELECT AttributeName FROM LOGS";
// this.Successcalbackfromsrc = this.myInstance.Successcalback;
var parm = { 'query': query, 'Successcalback': this.myInstance.Successcalback };
baseDAOObj.executeSql(parm);
}
//To Create database and execute sql queries.
function BaseDAO() {
this.myInstance = this;
//Creating database
this.GetMobileWebDB = function () {
if (dbName == null) {
var dbName = 'ABC';
}
var objMobileWebDB = window.openDatabase(dbName, "1.0", dbName, 5 * 1024 * 1024);
return objMobileWebDB;
}
//Executing queries and getting result
this.executeSql = function (query) {
var objMobileWebDB = this.myInstance.GetMobileWebDB();
objMobileWebDB.transaction(function (transaction) {
//In this transaction i m returning the result.The result value is coming.
transaction.executeSql(query, [], function (transaction, result) { return result; }, this.Errorclback);
});
}
}问题在于您成功的回拨(如DCoder对您的问题的评论) 这是返回到哪里 因此,这就是如何做到这一点(或者至少是一种方法) 例如,您可以执行以下操作:
function (transaction,result){
console.log("yes, I have some result, but this doesn't say anything, empty result gives also a result");
// so check if there is a result:
if (result != null && result.rows != null) {
if (result.rows.length == 0) {
// do something if there is no result
}else{
for ( var i = 0; i < result.rows.length; i++) {
var row = result.rows.item(i);
var id = result.rows.item(i).id; //supposing there is an id in your result
console.log('Yeah! row id = '+id);
}
}
}else{
// do something if there is no result
}
};
功能(事务、结果){
log(“是的,我有一些结果,但这并没有说明什么,空的结果也会给出一个结果”);
//因此,请检查是否有结果:
if(result!=null&&result.rows!=null){
如果(result.rows.length==0){
//如果没有结果,就做点什么
}否则{
对于(var i=0;i