加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

踩过许多坑后,送你这份H5交互的页面跳转方式总结

发布时间:2019-06-25 01:08:00 所属栏目:建站 来源:狮觉设计工坊
导读:本年做了大量的 HTML5 项目,碰着了许多坑。在这个进程中学到了一些之前不具备的常识,以是这篇文章就简朴分享一下这方面的话题。 传统的MPA 起首,说一个较量迂腐的对象,叫做 MPA。 MPA 的全称是 Multi-page Application,意思是整个应用(站点)由多个

本年做了大量的 HTML5 项目,碰着了许多坑。在这个进程中学到了一些之前不具备的常识,以是这篇文章就简朴分享一下这方面的话题。

传统的MPA

起首,说一个较量迂腐的对象,叫做 MPA。

MPA 的全称是 Multi-page Application,意思是整个应用(站点)由多个完备的 html 组成。用户在页面 1 点击跳转,必要向处事端哀求页面 2,哀求乐成后渲染。而用户返回时,相等于是点击了赏识器的返回,页面退回到之前的汗青记录,并从头加载出来。

在这样的模式下,页面间切换慢、不流通的题目较量突出,尤其是在移动端。

同时,它还发生了几个小题目:

  • 跳动弹画:页面间的跳转无法实现转场动画结果。
  • 假如前一个页较量长,用户滑动到页面较量靠下方的位置后点击,返回时,页面无法默认逗留在原位置。
  • iOS 右滑返回发生题目,从页面 1 跳转到页面 2,再从页面 2 跳转到页面 3,右滑返回,会直接回到页面 1 前的页。

SPA

跟着对移动端体验需求的进步以及技能的前进,另一种模式 SPA(Single-page Application)逐渐成为主流。

SPA 简朴来说,就是原本在 MPA 中的多个 html,此刻被放在了一个 html 中,并被分成多少个片断。跳转、返回的本质酿成了分段的「潜匿」与「表现」。跳转不必要重复对处事端举办哀求,从而使得页面与页面之间切换越发快速流通。

在这样的机制下,跳转与返回完全由代码节制,以是可以通过代码界说页面转场的结果、返回。

在计划转场动画时,我们必要寄望的是导航栏是 Native 的照旧 HTML5 的。假如导航栏是 Native 的,那 HTML5 页面不包罗导航栏,它相等于是网页外的元素,不在转场结果的计划范畴内。

WebView

说 HTML5 的跳转,就不得不说 WebView。简朴来说,WebView 是在 App 顶用于表现 web 内容的容器。上文提到的 MPA 和 SPA,都装在了这个叫做 WebView 的容器中。

用户点击页面中的元素举办跳转,除了前面的两种方法外,尚有第三种:新打开 WebView 的方法。在这样的方法下,跳转的本质是 HTML5「汇报」Native,由 Native 执行打开新 WebView,并在新 WebView 中加载页面。

由于 Native 的机制,打开新 WebView 的同时,之前的 WebView 会被天然、完备地保存。以是这时,之前的几个题目就变为:

  • 跳动弹画:页面间的跳动弹画由 WebView 之间的跳动弹画来抉择。
  • 返回后页面逗留在原位置:美满支持。
  • iOS 右滑返回:美满支持。

不外必要留意的处所是,打开新 WebView 是一个资源耗损较量大的操纵。假如我们在计一律个流程时,必要较量多的持续行使这种方法,必要和研发同窗举办充实的雷同。

较量非凡的Replace

前述的三种跳转,城市发生汗青记录。MPA、SPA 的汗青记录是在 HTML5 中发生,新开 WebView 中的记录是在 Native 中发生。

在 MPA 或 SPA 中,假如跳转时行使 Replace 要领,它会用新页面替代之前的页面,汗青记录中没有之前页面的记录。

这是一种非凡的跳转方法,在计一律些不行逆的流程时可思量行使。

多页面回退

相识了上述的几种机制后,我们来看一个小的应用场景──多页面回退。

我们在现实营业中,常常会有这样的需求。假设我们有 1、2、3 三个页构成的一个流程,在页面 3 上有个「完成」按钮点击回到页面 1。在差异的交互模式下,实现这样的跳转有着差异的机制。

1. SPA模式下的正常跳转

这种模式是 3 个页面都在一个 WebView 中。点击页面 3 中的「完成」按钮,回退 -2 ,即回退 2 步汗青记录,到页面 1。

踩过很多坑后,送你这份H5交互的页面跳转方法总结

2. 新打开WebView

打开新 WebView 又分三种方法。

假如我们把 3 个页面,拆分到 2 个 WebView 中,如下图,点击完成按钮,即封锁自身地址的 WebView。

踩过很多坑后,送你这份H5交互的页面跳转方法总结

同样是打开新的 WebView,假如我们按如下图的要领拆分会轻微伟大。这时点击完成按钮,起首封锁自身地址的 WebView,当页面 2「意识」到本身从头被揭示时,自动退回 1 步到页面 1。

踩过很多坑后,送你这份H5交互的页面跳转方法总结

每次打开新的 WebView,这时点击完成,回退的本质是 HTML5「汇报」Native 封锁多个 WebView。必要出格留意的是,HTML5 中实现这种方法不是自然具备的,它必要 Native 具有一次封锁多个 WebView 的手段。以是我们在计划方案时,必要相识清晰自家的 Native 是否有这样的手段。

踩过很多坑后,送你这份H5交互的页面跳转方法总结

总结

以上,简朴说了几种 HTML5 的跳转方法。这些跳转方法,没有绝对的对与错,我们在计划方案时,必要按照现实的营业需求与技能的限定,来整体思量办理方案。

按照小我私人履历,也有几点小帖士分享给各人:

  • 前后逻辑交叉不伟大的单个页面,可以思量行使新 WebView 打开跳转。
  • 假如是一个使命型的流程,可以思量将一个使命流包在一个 WebView 中,在使命内行使 SPA 跳转。差异的使命行使差异的 WebView。保持使命之间的相关清楚明白。
  • 计划上必要着重示意页面间转场动画的结果,优先思量行使 SPA 跳转。
  • 为防备流程过于伟大,只管不要自界说封锁、返回的举动。保持封锁为默认的封锁举动,保持返回为默认的返回举动。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读