移動混合應用HTML5數據查詢優化


項目介紹

pheongap混合應用,跨平台,做應用加工廠提供應用模板編輯器~

本地應用,完全是模擬IOS,安卓原生應用的實現,所以支持14種手勢,所有PPT動畫,視覺差效果,等等功能組合。。。

這是IDE的功能設置

image

 

HTML5本地數據庫就是用SQLite,這是我們應用的數據庫

image

 

通過數據動態生成頁面

這個應用有30頁,有些應用上千頁,所以頁面全是動態生成的,只會維持在2-3頁,

這里用到了模擬多線程任務 - - ,用於實現無緩沖翻頁,效果還是不錯

image

 

image

 

image

 


一個頁面涉及N多數據的的查詢,可能關聯很多表,幾十上百條記錄,如何優化?

 

數據查詢方式

 

1:sql數據

拼sql語句是不行的,你可以試試一條SQL語句耗費的時間是多少?  基本上1條語句就是100毫秒了,安卓下面實測

現在一個頁面就可能存在幾百條數據的關聯,那么直接通過語句查詢是行不通的

 

2:緩存哈希

通過HTML5的executeSql查詢出來的是一個,SQLResultSetRowList 類型的 rows 是數據集的“行”,

rows 有兩個屬性:length、item ,故獲取查詢結果的第一行列名為name的值 :result.rows.item(0).name 

那么如果緩存數據為哈希的格式,這樣就不需要查詢數據了,每次找內存中的緩存即可了

就是這樣

var data = {}
each(result,function(r,index){
       data[r.id] = r.item(index);
})

但是忽略一個問題,瀏覽器分配給每一個應用的內存是有限的,所以這樣緩存的表數據一多,內存會溢出,應用直接崩

 

3:緩存數據集

目前使用的就是html5返回的緩存數據集SQLResultSetRowList了,因為我們可以直接result.rows.item(0) 通過索引下表找到對應的數據

這樣只需要算出數據庫中每一個id對應的下標索引就可以大大加快查詢數據了

 


目前項目三種都嘗試過,目前使用的最后一種數據查找,項目越來越大,這樣數據結構的問題也很嚴峻

如果你有做SPA應用,如果有用HTML5數據交互,希望能幫助到你

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM