求类单页应用方案
要实现个类似网易邮箱的功能:
顶部是banner,左侧为菜单,右侧上部为打开页面对应的tab标签,类似于浏览器tab,下面是当前激活的tab对应的页面内容。
像类似这种需求,有点像单页应用,但在下在这方便并无实际应用经验。请各位大神帮忙指点下方向。
要求支持IE8+,所以vue被我否了。
自己实现了一个采用最简单方案,拦截左侧导航,点击之后获取对应页面的html片段,插入到当前页面,并建立tab和对应的内容区关联,以及html片段中的引入的JS之间的关系,从而实现在关闭tab页面 调用对应js中的销毁方法。
但是感觉有点low,怕最后没有管理好,造成内存溢出问题,项目进行到一半,悲吹了。另外没有实现地址栏解析参数解析,以实现直接打开特定菜单的功能。
也没有采用iframe直接打开对应菜单的方案,不知道直接采用iframe打开页面与采用html片段方式都有什么区别,我看qq邮箱 163邮箱都没有采用iframe来做,除了显示邮件主题内容时。
说的有点乱,望大神指点下方向。
Ps: 我看了下网易的代码,他们把所有的html都给打包js里面去了,由js来做的html渲染,但是前端这边js这块儿就我一人儿,一个人搞不了这么多事情,所以都是美工这边把页面布局写好,我来填js功能。
PPS:
我现在采用的html片段类似下面的结构,
div#xxxx
<script type="text/fscript" data-src="/script/page/address/index.js?t=<?=ResourceLoader::TIME_STAMP?>"></script>
后端返回这种格式,然后我把html插入到页面,然后读取script[type="text/fscript"]标签,获取data-src地址,然后创建script标签,建立起当前tabtabContent以及script中的实例之间的关系,来实现最后关闭tab时 调用实例的destroy做销毁,解绑之类的操作。
我想知道我这么做是不是好low,有没有什么潜在的问题啊。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
路由: 可以用
hashchange
监听路由(IE8支持)页面:
用easyUI http://www.jeasyui.net/plugin...
他里面的tabs很适合你,他的tab是可以新增和管理的
或者ligerUI,在easyUI基础上封装的,功能更多
http://api.ligerui.com/
IE8~~
react+react-route 使用些手段是可以支持到IE8的,你如果想努力一把可以尝试下,我见过别人弄,恩,有点儿糟心~
我之前自己做了一个跟你的需求几乎一模一样的demo,不过我是用了vue2.0,虽然功能都实现了,但都不是太完善,如果有兴趣我可以发你源码。QQ : 384100865
miniui或者easyui