跪求技术牛人帮下忙,不能见死不救啊,关于HTML5从SQLite中读取数据后,再动态添加List时出现的问题(先谢谢大家了,不能让帖子太沉了啊)
前提:用的JQUERY MOBILE框架
简单说,就是我用HTML5操作SQLite的DB处理,总是在页面加载后才被执行。
这样我用从SQLite中读取数据,动态给列表添加新DOM,就会在页面显示后,才被再次加载。
现象就是页面(不含新DOM)先被刷新出来,然后新DOM才被添加到页面,会闪一下
具体的代码我放在邮箱里,拿来就能用,麻烦各位技术牛人费下心,小弟不胜感激,泪流满面。
邮箱2选1:aa4208@tom.com 密码:aa123456
1450023407@qq.com 密码:aa123456
我的QQ24小时在线:943714520,欢迎指教
我取了其中一部分代码,在下面:
<script type="text/javascript">
$(function(){
db = window.openDatabase("ikea.db", "1.0", "ikea_database", 1024 * 1024);
db.transaction(function(tr) {
var query =
"CREATE TABLE IF NOT EXISTS Catalog_tbl1111(" +
" ctl_id INTEGER PRIMARY KEY, " +
" ctl_catalog TEXT NOT NULL " +
")";
tr.executeSql(query, [] ,loadItems);
// 总是先执行alert(2222),后执行回调函数loadItems
alert(2222);
});
// 总是先执行alert(1111),后执行DB操作
alert("1111");
});
// DB事务和回调函数的执行顺序极为诡异(先弹出11111,后弹出22222,最后执行回调),
// 而且回调函数的所有操作被视为在页面加载方法之外(目标是让回调函数在页面加载方法完毕前执行)
// 以上页面加载的ready方法,以下是两个回调函数
function loadItems() {
db.transaction(function(tr) {
var query = "select * from Commodity_tbl where cmd_tpbId = '1' ";
tr.executeSql(query, [], loadItems_onResult);
});
}
function loadItems_onResult(tr, rs) {
for (var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
var cmd_id = row.cmd_id;
var cmd_commodity = row.cmd_commodity;
$("#si_ul").append("<li id='"+ cmd_id +"'></li>");
$("#" + cmd_id).append("<a href='link_page/Template_page.htm'>"
+ cmd_commodity + "</a>");
};
$("#si_ul").listview("refresh");
}
</script>