zhangxinxu / mobilebone

Single Page Switching bone(include page manage, events manage) for mobile web APP, Hybrid APP, Phonegap, PPT, Single-Screen PC page...
http://www.zhangxinxu.com/wordpress/?p=4381
MIT License
1.4k stars 327 forks source link

关于一个页面中使用Mobilebone.createPage创建页面出现的问题 #171

Open ghost opened 9 years ago

ghost commented 9 years ago

1、在a页面中使用Mobilebone.createPage创建一个b页面,此时点击后退操作,会更换二个页面dom的顺序; 2、在a页面中使用Mobilebone.createPage创建一个b页面偶发会清掉a页面结构;

此类问题是不是因为修改多级结构引起的问题,很严重!

ghost commented 9 years ago

似乎多级创建内容总是有细节问题!

ghost commented 9 years ago

怪事了,现在出现Mobilebone会自动清空一些dom结构。

比如一个列表页面,配置data-reload;点击列表进去详情,点击后退回到列表;再点击另一个列表进去详情,点击后退到列表,此时观察dom,发现详情的dom结构被自动清掉了,这明显是不可行的!

目前开发过程遇到了严重问题,比如列表页面A,点击一个列表项目到详情B,操作详情B会通过Mobilebone.createPage创建一些过程页面,如果通过上述往复操作,详情B的页面结构清理掉了,导致在操作过程页面时需要更新B页面上的显示内容时,因为B的dom不存在根本操作不了,从过程页面后退到B页面,此时很怪异的又会从内存中显示回的旧页面结构!(ps:进一步发现这里删除的dom应该还在内存中,但是从页面上已经被清理了,这里的处理太不合理了,希望马上修正!)

所有,强烈建议不能自动清理页面dom结构!

ghost commented 9 years ago

我把代码回到Mobilebone.VERSION = '2.5.7'版本,测试是没有上面所述的问题的,希望尽快修复,谢谢!

ghost commented 9 years ago

不知道为什么要从页面中移除,内存中又存在,内存中保存一份老的结构,但实际操作dom时只能处理页面上的内容,问题在于一方面此时页面中找不到相应的dom,二是操作页面dom不能直接操作更新内存缓存的结构,所以这里的设计有大问题!已经加载过的页面,要么一直缓存在页面,要么由开发者自己做清理会更合适!

zhangxinxu commented 9 years ago

收到反馈。有人希望要清除,有人希望不清除,我只能无奈一笑,我再处理下~

zhangxinxu commented 9 years ago

非常感谢非常有用的反馈! 刚刚提交了v2.6.2版本。

  1. 只有打开详细页的时候才会清除其他详情页(之前存在详情页隐藏也移除的情况);
  2. 修复后退DOM位置变化的问题,同时createPage插入页面的位置更加智能(之前是傻不拉几单纯往页面后面塞);
ghost commented 9 years ago

好的,非常感谢~~