单页/ AJAX web应用程序
Basic代码结构
的LocationManager(负责更新浏览器散列和切换应用程序的位置,以不同的瓦片)
页面/瓷砖流程
基本信息>家居资讯>汽车资讯>购买选项>查看订单>输入支付和提交
问题
当用户从购买选择导航查看订单,长(5- 8秒)服务电话来计算订单详情。在通话的解决方案中,回调旨在将用户导航至Review Order页面。问题是,如果用户在这段时间内点击回到家庭信息,一旦呼叫解决,他们将被“自动”带到审核订单。非常尴尬的用户体验。
限制
取消呼叫是不是一种选择。需要解决方案来处理导航。
目前提出的实施
保存 “currentLocation” 之前作出calculateOrder电话。 将回调中的“currentLocation”作为desiredStartingPoint传递给setLocation方法。 内setLocation方法if(intendedStartingPoint === Locationmanager.currentLocation) {//Navigate}
概括起来讲,如果用户改变位置而通话过程中,在呼叫的决议,我们将无法导航,因为用户不希望被导航到查看订单在那时候。
这有效,对不对?
渔获
我们在应用,在那里setLocation被称为长期运行的调用回调中的许多地方。这意味着我将不得不使用新参数 - desiredStartingPoint更新所有setLocation调用。虽然这对我来说很有意义,但看起来它有可能会有点混乱。
关于如何清理和集中它的任何想法?
裹在一个专门的函数定义的setLocation调用,它提供给查看订单回调,使专业函数还将desiredStartingPoint作为参数并处理desiredStartingPoint逻辑? – Soggiorno
在通话返回之前关闭后退按钮(或任何操作)怎么办?否则,只需检查您的当前位置通话返回和重定向只有在正确的瓷砖上。 (注意:在这种情况下,用户可能会返回问题,修改某些数据,然后返回到正确的区块而不重新启动呼叫,导致重定向而没有保存/验证新数据,因此您应该至少自动重新启动数据更改的呼叫,但只是取消导航/数据更改的呼叫会更理想。) –
@SzabolcsPáll无法“禁用”网站内的浏览器按钮。你所提出的解决方案是我在问题中概述的。 – antonpug