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

QQ登录

只需一步,快速开始

楼主: ufo1982ufo

[结贴] 求指导,这个框架遇到了问题!

[复制链接]
发表于 2017-1-16 17:32:09 | 显示全部楼层
ufo1982ufo 发表于 2017-1-16 17:25
chronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the ...

啊!可能是资源吗没有加载!,所以你必须进行判断!子页面是否加载完了??
如果是在onload事件中记载的!需要等待加载完后再调用

http://docs.wex5.com/wex5-ui-question-list-2104
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-16 17:40:07 | 显示全部楼层
liangyongfei 发表于 2017-1-16 16:00
那你再调试看看,每次点按钮切换content页面的时候!有没有方法可以被触发!是触发的哪个事件??导致了 ...

补充一下,如果用户是通过main.w进来的话,是正常的
如果用户带着类似:http://localhost:8080/x5/UI2/v_/mfxxl/main.w#!searchcontent进来的话,才会出现问题,其实开路由就是为了分享后用户直接通过这种途径进来浏览!
而且浏览器直接输入:http://localhost:8080/x5/UI2/v_/mfxxl/main.w#!searchcontent,自动跳转到:http://localhost:8080/x5/UI2/v_/mfxxl/main.w#!infolistcontent,路由是开着的,何解?
回复 支持 反对

使用道具 举报

发表于 2017-1-16 17:47:08 | 显示全部楼层
ufo1982ufo 发表于 2017-1-16 17:40
补充一下,如果用户是通过main.w进来的话,是正常的!
如果用户带着类似:http://localhost:8080/x5/UI2/ ...

那就要调试看下searchcontent 页面的onload 做了什么?跟一下,js是否做了页面跳转??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-16 17:58:12 | 显示全部楼层
liangyongfei 发表于 2017-1-16 17:32
啊!可能是资源吗没有加载!,所以你必须进行判断!子页面是否加载完了??
如果是在onload事件中记载的 ...

我觉得也是这里的问题,如何在main.w判断子页面的modelLoad事件是否执行完毕?
如果执行完毕执行“xx.....xx”,如果没有执行完毕就等待执行完毕?
要如何写?
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-16 18:00:00 | 显示全部楼层
liangyongfei 发表于 2017-1-16 17:47
那就要调试看下searchcontent 页面的onload 做了什么?跟一下,js是否做了页面跳转?? ...

应该和searchcontent页面的onload没有关系,因为我注释掉main.w的infolistcontentInactive之后,不管是带路由的进入还是contents之间的切换都是一切正常的。
回复 支持 反对

使用道具 举报

发表于 2017-1-16 18:03:06 | 显示全部楼层
ufo1982ufo 发表于 2017-1-16 17:58
我觉得也是这里的问题,如何在main.w判断子页面的modelLoad事件是否执行完毕?
如果执行完毕执行“xx.... ...

http://docs.wex5.com/wex5-ui-question-list-2104


setInterval
中判断
var model = this.comp('windowContainer').getInnerModel()  
if(model)
{
//加载完毕
}else{
//未加载完毕
}
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-17 11:19:28 | 显示全部楼层
liangyongfei 发表于 2017-1-16 16:00
那你再调试看看,每次点按钮切换content页面的时候!有没有方法可以被触发!是触发的哪个事件??导致了 ...

我在main.w定义了shell的pagemaipping,把这个注释就可以路由正常了,这个bug还是本来就这么规定?
  1.         var Model = function(){
  2.                 this.callParent();


  3. //                var shellImpl = new ShellImpl(this, {
  4. //                        "contentsXid" : "contents",
  5. //                        "pageMappings" : {
  6. //                                "main" : {
  7. //                                        url : require.toUrl('./main.w')
  8. //                                },
  9. //                                "infolist" : {
  10. //                                        url : require.toUrl('./infolist.w')
  11. //                                },
  12. //                                "search" : {
  13. //                                        url : require.toUrl('./search.w')
  14. //                                },
  15. //                                "edit" : {
  16. //                                        url : require.toUrl('./edit.w')
  17. //                                },                               
  18. //                                "guidelist" : {
复制代码
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-17 11:24:49 | 显示全部楼层
liangyongfei 发表于 2017-1-16 18:03
http://docs.wex5.com/wex5-ui-question-list-2104

看了你写的interval,我改了一下,你看对不对?如果我想等子页面的model.loadUserData()加载完成 再保存,就卡死在默认那个content了,不跳转其他我希望的content页面,也没有什么提示!
  1.         Model.prototype.infolistcontentInactive = function(event){                //infolist离开时保存数据
  2.                 debugger;
  3.                 var self = this;
  4.                 var model = this.comp('windowContainer0').getInnerModel();
  5. if(model){
  6. debugger;
  7.                         alert('onload ok');//加载完毕
  8.                         var data = model.comp('userData');
  9.                         data.setValue('openid',model._userID);
  10.                         data.setValue('name',model._userDefaultName);
  11.                         data.setValue('photo',model._userPhotoURL);
  12.                         data.setValue('latitude',window.latitude);
  13.                         data.setValue('longitude',window.longitude);
  14.                         data.setValue('login',model.date);
  15.                         data.setValue('email',model.email);
  16.                         data.saveData();
  17. //                    clearInterval(timer);
  18.                         localStorage.setItem('locallongitude', window.longitude);         //保存至本地
  19.                         localStorage.setItem('locallatitude', window.latitude);         //保存至本地
  20.                         localStorage.setItem('localopenid', window.openid);
  21.                 }else{
  22.                         var timer = null;
  23.                         var s = 1;
  24.                         timer = setInterval(fn1,500);
  25.                         function fn1(){
  26.                                 debugger;
  27.                             s++;
  28.                             var model = self.comp('windowContainer0').getInnerModel();
  29.                             if(model){
  30.                                 alert('timer is up');
  31.                                         var data = model.comp('userData');
  32.                                         data.setValue('openid',model._userID);
  33.                                         data.setValue('name',model._userDefaultName);
  34.                                         data.setValue('photo',model._userPhotoURL);
  35.                                         data.setValue('latitude',window.latitude);
  36.                                         data.setValue('longitude',window.longitude);
  37.                                         data.setValue('login',model.date);
  38.                                         data.setValue('email',model.email);
  39.                                         data.saveData();
  40. localStorage.setItem('locallongitude', window.longitude);         //保存至本地
  41.                                         localStorage.setItem('locallatitude', window.latitude);         //保存至本地
  42.                                         localStorage.setItem('localopenid', window.openid);
  43.                                 clearInterval(timer);
  44.                             }else if(s === 8){
  45.                                     justep.Shell.showpage("main");
  46.                                     justep.Util.hint('网络延迟,为您跳转至首页...');
  47.                             }
  48.                         }
  49.                 }
  50.         };
复制代码



回复 支持 反对

使用道具 举报

发表于 2017-1-17 13:39:02 | 显示全部楼层
ufo1982ufo 发表于 2017-1-17 11:24
看了你写的interval,我改了一下,你看对不对?如果我想等子页面的model.loadUserData()加载完成 再保 ...


shellImpl 是定义在首页index.w ,你的mian.w就是门户也吗??

可以debugger调试看看!

windowContainer的autoLoad是true吗??如果不是的话!需要调用windowContainer.load()加载这个页面才行啊!
否则子页面永远不加载
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-17 23:25:43 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2017-1-17 23:29 编辑
liangyongfei 发表于 2017-1-17 13:39
shellImpl 是定义在首页index.w ,你的mian.w就是门户也吗??

可以debugger调试看看!

我在首页index.w定义shellimpl之后,可以加载windowcontainer了,但是index.w运行时出现了如下错误提示后还可以继续运行:
  1. Uncaught TypeError: Cannot read property 'has' of null
复制代码

如果注释掉modelload里的“justep.Shell.showPage("main");”之后就不会提示,是什么原因?js代码如下:
  1. define(function(require) {
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         var ShellImpl = require('$UI/system/lib/portal/shellImpl');

  5.         var Model = function() {
  6.                 this.callParent();
  7.                 var shellImpl = new ShellImpl(this, {
  8.                         "contentsXid" : "contents",
  9.                         "pageMappings" : {
  10.                                 "main" : {
  11.                                         url : require.toUrl('./main.w')
  12.                                 },
  13.                                 "infolist" : {
  14.                                         url : require.toUrl('./infolist.w')
  15.                                 },
  16.                                 "search" : {
  17.                                         url : require.toUrl('./search.w')
  18.                                 },
  19.                                 "edit" : {
  20.                                         url : require.toUrl('./edit.w')
  21.                                 },                                
  22.                                 "guidelist" : {
  23.                                         url : require.toUrl('./guidelist.w')
  24.                                 },
  25.                                 "infodetail" : {
  26.                                         url : require.toUrl('./infodetail.w')
  27.                                 },
  28.                                 "guidedetail" : {
  29.                                         url : require.toUrl('./guidedetail.w')
  30.                                 }
  31.                         }
  32.                 });

  33.         };

  34.         Model.prototype.modelLoad = function(event){
  35.                 debugger;
  36.                 justep.Shell.showPage("main");                //has null
  37.         };

  38.         return Model;
  39. });
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 20:45 , Processed in 0.064986 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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