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

QQ登录

只需一步,快速开始

查看: 3369|回复: 12

[结贴] 仿淘宝案例中发现页每打开一次加载一次数据

[复制链接]

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
发表于 2017-7-6 15:11:49 | 显示全部楼层 |阅读模式
如题:从首页切换到发现,或从微淘 切换到 发现 都会执行
GET http://localhost:8080/x5/UI2/v_01df0e51538f4d7692..._zh_CNs_d_m/demo/taobao/list/json/goodsData.json
        重新加载数据?为什么,是不是BUG
GET http://localhost:8080/x5/UI2/v_01df0e51538f4d7692..._zh_CNs_d_m/demo/taobao/list/json/goodsData.json

切换到微淘则没事。为什么???       

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-6 15:17:01 | 显示全部楼层
未命名-1.fw.png
请为怎么解决才可以不用每次都请求数据,从其他标签页切换到这就请求数据。

回复 支持 反对

使用道具 举报

13

主题

62

帖子

174

积分

初级会员

Rank: 2

积分
174
QQ
发表于 2017-7-6 15:25:46 | 显示全部楼层
Contents默认加载所有content页面,设置contents的autoload为false,然后通过事件来手动加载相应的content,试试看
回复 支持 反对

使用道具 举报

发表于 2017-7-6 16:20:36 | 显示全部楼层
first932167 发表于 2017-7-6 15:17
请为怎么解决才可以不用每次都请求数据,从其他标签页切换到这就请求数据。

...

网络请求是有的!但是应该是访问的本地缓存!
并不是真正从服务器下载的!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-7 09:40:49 | 显示全部楼层
51天天向上 发表于 2017-7-6 15:25
Contents默认加载所有content页面,设置contents的autoload为false,然后通过事件来手动加载相应的content ...

我感觉也是这一页多了Contents这个组件的问题,但是这个组件没有 autoload这个属性,手动加到代码里面也不起作用。
最主要的是也不会写怎么把list缓存到本地,这样每次都从网上获取数据,会很长时间。
回复 支持 反对

使用道具 举报

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-7 09:41:53 | 显示全部楼层
liangyongfei 发表于 2017-7-6 16:20
网络请求是有的!但是应该是访问的本地缓存!
并不是真正从服务器下载的!

淘宝这个案例本身就是访问本地数据,但不是缓存,如果要是做成其他的,就会访问远程数据,速度会很慢。
回复 支持 反对

使用道具 举报

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-7 09:46:20 | 显示全部楼层
案例中仅缓存了一个页面名称,并没有缓存页面数据,页面数据如何存:
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());
        };
回复 支持 反对

使用道具 举报

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-7 10:28:31 | 显示全部楼层
测试发现,Contents会刷新整个model,这样子model里面的数据就都没有了,而这个页面上如果有三个数据表(data),这三个都需要重新加载,即使其中两个都不在Contents页面中,也要重新加载数据。
回复 支持 反对

使用道具 举报

发表于 2017-7-7 15:02:27 | 显示全部楼层
first932167 发表于 2017-7-7 10:28
测试发现,Contents会刷新整个model,这样子model里面的数据就都没有了,而这个页面上如果有三个数据表(data ...

json文件也会缓存在本地的!
可以查看下是不是缓存文件了
https://zhidao.baidu.com/question/249933933.html
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

90

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2017-7-7 15:02:44 | 显示全部楼层
是不是不好实现在,如果不好实现,我只能在里面放弃使用Contents了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 08:11 , Processed in 0.057190 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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