起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: a531246041

[结贴] 为什么我按照教程写的分页,设置了limit 每次都一次加载出来

[复制链接]

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-14 14:33:27 | 显示全部楼层
liangyongfei 发表于 2017-2-10 11:55
搜索框 加载什么慢??
先试试同一个手机的系统自带浏览器,访问这个功能会不会慢??如果慢就是网络问题 ...

嗯好的,我等下看下
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 08:48:40 | 显示全部楼层
liangyongfei 发表于 2017-2-10 11:55
搜索框 加载什么慢??
先试试同一个手机的系统自带浏览器,访问这个功能会不会慢??如果慢就是网络问题 ...

大兄弟,我问一下你知道这个为什么首次加载的时候需要缓冲至少2页吗,我要如何关闭这个
回复 支持 反对

使用道具 举报

发表于 2017-2-16 10:49:43 | 显示全部楼层
a531246041 发表于 2017-2-16 08:48
大兄弟,我问一下你知道这个为什么首次加载的时候需要缓冲至少2页吗,我要如何关闭这个 ...

scrollView组件的 属性 autoAppend="false" 即可!
默认为true
当第一次加载的数据没有显示满一屏的话,就会自动多加载一次!
为的是数据显示满屏幕,如果limit设置大一点就不会加载两次了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 11:15:17 | 显示全部楼层
liangyongfei 发表于 2017-2-16 10:49
scrollView组件的 属性 autoAppend="false" 即可!
默认为true
当第一次加载的数据没有显示满一屏的话, ...

并没有卵用呀。还是一次加载两页
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 11:22:27 | 显示全部楼层
a531246041 发表于 2017-2-16 11:15
并没有卵用呀。还是一次加载两页


这个alert会执行 0 0 20 三次
QQ图片20170216112141.png
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 11:47:59 | 显示全部楼层
define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var allData = require("./js/loadData");
        var limitNum = 20;
        var Model = function() {
                this.callParent();
                this.keyValue = "";
        };

        // 图片路径转换
        Model.prototype.getImageUrl = function(url) {
                return require.toUrl(url);
        };

        Model.prototype.modelParamsReceive = function(event) {
                /*
                 * 1、接收上页传来参数、显示在搜索框中、参数不变不刷新
                 */
                if (this.params != undefined) {
                        if (this.keyValue != this.params.keyValue) {
                                this.keyValue = this.params.keyValue;
                                this.comp("keyInput").val(this.keyValue);
                                this.comp("goodsData").refreshData();
                        }
                }
        };

        // 获取商品列表
        Model.prototype.goodsDataCustomRefresh = function(event) {

                /*
                 * if (this.params != undefined) { if (this.keyValue !=
                 * this.params.keyValue) { this.keyValue = this.params.keyValue;
                 * this.comp("keyInput").val(this.keyValue);
                 * this.comp("goodsData").refreshData(); } }
                 */

                /**/
                /*
                 * 1、加载商品数据 2、接收传入的参数,过滤数据
                 */
                var data = this.comp("goodsData");

                if (event.offset == 0) {
                        var url = "http://192.168.3.2:8066/ashx/GetListApp.ashx?offset=0&limit=" + limitNum + "&keys=" + this.comp("keyInput").val() + "&username=";
                        allData.loadDataFromFile(url, data, true);
                } else {
                        // alert(event.offset);
                        var url = "http://192.168.3.2:8066/ashx/GetListApp.ashx?offset=" + event.offset + "&limit=" + limitNum + "&keys=" + this.comp("keyInput").val() + "&username=";
                        allData.loadDataFromFile(url, data, false);
                }
               
                alert(event.offset);

        };

        // 商品点击事件
        Model.prototype.listClick = function(event) {
                /*
                 * 1、获取当前商品ID 2、传入弹出窗口,弹出窗口中显示商品详细信息 3、在弹出窗口的接收事件中,从服务端过滤数据
                 */
                var data = this.comp("goodsData");
                justep.Shell.showPage("detail", {
                        goodsID : data.getValue("id"),
                        shopID : data.getValue("fShopID")
                });
        };

        // 搜索
        Model.prototype.searchBtnClick = function(event) {
                /*
                 * 1、进入搜索页面
                 */

                justep.Shell.showPage("search");

        };

        // 修改列表样式图标
        Model.prototype.listStyleClick = function(event) {
                /*
                 * 1、切换下一个页面
                 */
                this.comp('pages').next();
        };

        Model.prototype.pagesActiveChanged = function(event) {
                /*
                 * 1、页面变化完成事件 2、根据页面索引修改按钮图标
                 */
                var btnObj = this.comp("listStyleBtn");
                var index = this.comp("pages").getActiveIndex();
                if (index == "0") {
                        btnObj.set("icon", "glyphicon glyphicon-th-list");
                } else {
                        btnObj.set("icon", "glyphicon glyphicon-th-large");
                }
        };
        /* 选择排序按钮 */
        Model.prototype.sortingBtnClick = function(event) {

                if ($(this.comp("sortingPopOver").$domNode).css("display") == "block") {
                        this.comp("sortingPopOver").hide();
                } else {
                        this.comp("sortingPopOver").show();
                }

                if ($(this.comp("screeningPopOver").$domNode).css("display") == "block") {
                        this.comp("screeningPopOver").hide();
                }
        };
        /* 选择排序 */
        Model.prototype.sortingListClick = function(event) {
                /*
                 * 1、排序点击事件 2、修改当前排序 3、关闭排序窗口
                 */
                var data = this.comp("conditionData");
                data.setValue("fState", "0", data.find([ "fState" ], [ "1" ], true, true, true)[0]);
                var row = data.getCurrentRow();
                data.setValue("fState", "1", row);
                this.comp("sortingBtn").set("label", data.getValue("fName", row));

                this.comp("sortingPopOver").hide();
        };

        /* 折扣和服务按钮 */
        Model.prototype.screeningBtnClick = function(event) {
                if ($(this.comp("screeningPopOver").$domNode).css("display") == "block") {
                        this.comp("screeningPopOver").hide();
                } else {
                        this.comp("screeningPopOver").show();
                }
                if ($(this.comp("sortingPopOver").$domNode).css("display") == "block") {
                        this.comp("sortingPopOver").hide();
                }
        };

        /* 折扣和服务 */
        Model.prototype.discountClick = function(event) {
                /*
                 * 1、折扣和服务点击事件 2、选择折扣和服务,可多选
                 */
                var data = this.comp("discountData");
                var row = data.getCurrentRow();
                if (data.getValue("fState", row) == 0) {
                        data.setValue("fState", "1", row);
                } else {
                        data.setValue("fState", "0", row);
                }
        };

        /* 分类 */
        Model.prototype.classClick = function(event) {
                /*
                 * 1、分类点击事件 2、选择分类,单选
                 */
                var data = this.comp("classData");
                data.setValue("fState", "0", data.find([ "fState" ], [ "1" ], true, true, true)[0]);
                var row = data.getCurrentRow();
                data.setValue("fState", "1", row);
        };

        /* 重置 */
        Model.prototype.resetBtnClick = function(event) {
                /*
                 * 1、重置按钮点击事件 2、清空价格区间、折扣和服务、分类
                 */
                this.comp("price1").val("");
                this.comp("price2").val("");
                this.reset(this.comp("discountData"));
                this.reset(this.comp("classData"));
        };
        Model.prototype.reset = function(data) {
                var rows = data.find([ "fState" ], [ "1" ], false, true, true);
                for (var i = 0; i < rows.length; i++) {
                        data.setValue("fState", "0", rows[i]);
                }
        };

        Model.prototype.modelLoad = function(event) {
                /*
                 * 判断html标签是否有iosstatusbar,有测表示在苹果手机上运行,顶部需要留出20px,因此修改popover的top
                 */
                var src = $("html").hasClass("iosstatusbar");
                if (src) {
                        $(".x-popOver-overlay").css({
                                "top" : "108px"
                        });
                }
                /*
                 * 切换到缓存中保存的content
                 */
                var pagename = localStorage.getItem("list_style_name");
                if (pagename == null) {
                        pagename = "oneColList";
                }
                this.comp("pages").to(pagename);

        };

        // 离开页面事件
        Model.prototype.modelUnLoad = function(event) {
                /*
                 * 将当前激活的content的Xid存入缓存
                 */
                localStorage.setItem("list_style_name", this.comp("pages").getActiveXid());
        };

        Model.prototype.goodsDataCreate = function(event) {
                event.source.limit = limitNum;
        };

        Model.prototype.button6Click = function(event) {
                //justep.Shell.closePage();
                justep.Shell.showPage("search");
        };

        Model.prototype.sortingBtn1Click = function(event){
                /*
                 * 1、排序点击事件 2、修改当前排序 3、关闭排序窗口
                 */
                var data = this.comp("conditionData1");
                data.setValue("fState", "0", data.find([ "fState" ], [ "1" ], true, true, true)[0]);
                var row = data.getCurrentRow();
                data.setValue("fState", "1", row);
                this.comp("sortingBtn").set("label", data.getValue("fName", row));

                this.comp("sortingPopOver").hide();
        };

        return Model;
});
回复 支持 反对

使用道具 举报

发表于 2017-2-16 12:01:30 | 显示全部楼层
a531246041 发表于 2017-2-16 11:22
这个alert会执行 0 0 20 三次

data的autoLoad是设置为true的吧??

如果设置了!就不要调用refreshData()了!

否则会刷新两次,可以将autoLoad设置为false 或者 去掉refreshData() 调试试试
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 12:03:12 | 显示全部楼层
liangyongfei 发表于 2017-2-16 12:01
data的autoLoad是设置为true的吧??

如果设置了!就不要调用refreshData()了!

上面是我的全部代码,好像我没有调用那个呀define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        return {
                loadDataFromFile : function(url,objData,operation) {                       
                        if (operation) { objData.clear();}
                        $.ajaxSettings.async = false;
                        $.getJSON(url, function(data) {
                                objData.loadData(data,!operation);
                        });       
                }
        }
       
       
});
回复 支持 反对

使用道具 举报

发表于 2017-2-16 13:07:35 | 显示全部楼层
a531246041 发表于 2017-2-16 12:03
上面是我的全部代码,好像我没有调用那个呀define(function(require){
        var $ = require("jquery");
        var ...

那你自己调试啊!先把有可能加载数据的代码注释掉!看下是否影响,比如把data组件的autoLoad设置为false 还会加载数据吗?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

50

帖子

88

积分

初级会员

Rank: 2

积分
88
QQ
 楼主| 发表于 2017-2-16 13:26:44 | 显示全部楼层
liangyongfei 发表于 2017-2-16 13:07
那你自己调试啊!先把有可能加载数据的代码注释掉!看下是否影响,比如把data组件的autoLoad设置为false  ...

我似乎找到问题了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-30 22:21 , Processed in 0.054806 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表