求类单页应用方案

发布于 2022-09-05 09:09:33 字数 1153 浏览 18 评论 0

要实现个类似网易邮箱的功能:

clipboard.png

顶部是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

十秒萌定你 2022-09-12 09:09:33

路由: 可以用hashchange监听路由(IE8支持)
页面:

1. `iframe`
2. 单独请求一段`HTML`插入
3. 页面一次性加载,先隐藏,需要显示再显示
披肩女神 2022-09-12 09:09:33

用easyUI http://www.jeasyui.net/plugin...
他里面的tabs很适合你,他的tab是可以新增和管理的

clipboard.png

或者ligerUI,在easyUI基础上封装的,功能更多
http://api.ligerui.com/
clipboard.png

心房的律动 2022-09-12 09:09:33

IE8~~
react+react-route 使用些手段是可以支持到IE8的,你如果想努力一把可以尝试下,我见过别人弄,恩,有点儿糟心~

少女的英雄梦 2022-09-12 09:09:33

我之前自己做了一个跟你的需求几乎一模一样的demo,不过我是用了vue2.0,虽然功能都实现了,但都不是太完善,如果有兴趣我可以发你源码。QQ : 384100865

最偏执的依靠 2022-09-12 09:09:33

miniui或者easyui

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文