|

楼主 |
发表于 2017-3-20 18:09:14
|
显示全部楼层
随着问题的深入,我按照您的方法:
1、修改了代码。
- Model.prototype.guideDataRefreshCreateParam = function(event){
- event.param.columns ={
- "goods_id":{"name":"goods_id","type":"Integer"},
- "title":{"name":"title","type":"String"},
- "img_url":{"name":"img_url","type":"String"},
- "create_time":{"name":"create_time","type":"Date"},
- "click_count":{"name":"click_count","type":"Integer"},
- "mall_name":{"name":"mall_name","type":"String"},
- "price":{"name":"price","type":"String"}
- };
- };
复制代码
在查询中的却没有查询指定的列。不过还是慢,而且等待的时间也是一样的!
2、我换成sqlquery来做,在columns写了指定的列,还是一样,慢,等待的时间还是一样的!
后来发现里面有个ttfb时间,每次都需要等待3秒以上,于是我了解了一下TTFB(TTFB (Time To First Byte),是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。)。
后来我用教程中的方法,这个TTFB基本就减少到80毫秒左右,如果数据库在本地,后面那个contentdownload时间就是0,如果在远程服务器上就是资源下载的时间。
再到后来我发现只要我数据库中的字段存在着base64的内容,用wex5的baasdata默认query(sqlquery也一样)基本就有这个TTFB时间存在。即使在本地studio的环境下都有3秒以上的时间,资源其实只用了0秒,如果在远程TTFB就是3秒还要加上资源下载的时间,网页(app)就需要卡住那么几秒!
尽管数据库中有base64的内容,如果按照教程的自定义action来做的话,TTFB时间就可以控制在90毫秒以下。
所以不确定这个TTFB是不是由于对base64进行处理产生的,然而新的问题产生了,我用自己自定义的action来做,的却可以降低TTFB的时间,但是每次我的数据加载到baasdata组件都是全部加载,看了论坛里的做分页都是加载到data里,如果我要在这个action里要如何来处理?
- Model.prototype.contentDataCustomRefresh = function(event){
- debugger;
- var datenow = this.mDateNow;
- var me = this;
- justep.Baas.sendRequest({
- "url" : "/mfxxl/mfxxlad", //服务文件路径
- "action" : "queryAdAction", //调用动作的名称
- // "async " : false, //同步请求
- "async " : true, //异步请求
- "params" : {
- tableName : "ad",
- column : "ad_id,ad_link,ad_order,ad_type,click_count,end_date,img_url,is_open,start_date FROM ",
- condition : " where ad_type = 41 AND is_open = 1 AND start_date <= '" + datenow + "' AND end_date >= '" +datenow + "'"
- }, //设置参数
- "success" : function(data) { //设置执行成功的回调方法
- debugger;
- me.comp("contentData").loadData(data); //调用数据组件的loadData方法装入数据
- }
- });
- };
复制代码 我的页面用了scrollview,我也获取到了sys.count的值,就是不知道如何可以实现分页加载!
|
|