当前位置: 首页 > Web前端 > JavaScript

SAPSpartacus快速结账设计

时间:2023-03-27 12:57:14 JavaScript

所谓快速结账(快速结账),是一种超快速的结账表单,通常是为回头客设计的,它减少了表单字段以确保更快的结账流程。运输、账单和付款信息在站点的一个包含区域中提交,为客户提供简单高效的服务。ExpressCheckout允许用户跳过所有步骤,并在点击“GotoCheckout”后立即看到评论摘要页面。AngularPageGuard将检查用户是否至少有1个送货地址和1种付款方式——如果有更多,它将选择默认值。设置好地址后,会选择当前配置的默认发货方式。如果一切顺利,用户应该被重定向到评论摘要。否则,他将完成结帐步骤。在审核汇总步骤中,用户将看到预先设置的数据,并且有可能更新该步骤。该功能的启用方式由2个新的可选属性控制:express标志位:当默认送货和付款方式可用时允许快速结账。数组defaultDeliveryMode:i.a.默认交付模式。用于快速结帐。按照一般偏好(例如DeliveryModePreferences.LEAST_EXPENSIVE)或特定交付代码的顺序设置偏好。checkout?:{//...express?:boolean;defaultDeliveryMode?:数组;};Spartacus支持以下交付模式首选项:enumDeliveryModePreferences{FREE='FREE',LEAST_EXPENSIVE='LEAST_EXPENSIVE',//但不是免费的MOST_EXPENSIVE='MOST_EXPENSIVE',}默认配置:checkout:{//...express:false,defaultDeliveryMode:[DeliveryModePreferences.FREE],};客户可以使用以下代码使自己的配置生效:provideConfig({//...checkout:{//...express:true,defaultDeliveryMode:['sample-code'],},});expresscheckout实现代码:注意53行debounceTime(0)的使用。debounceTime将源发出的值延迟给定的过期时间。如果在此时间内有新值到达,则删除先前的未决值并重置计时器。通过这种方式,debounceTime会跟踪最新的值,并在给定的过期时间过去后发出最新的值。该运算符主要用于每秒可触发数十次甚至数百次的事件。最常见的示例是DOM事件,例如滚动、鼠标移动和按键。使用debouceTime时,您只关心最终状态。例如,用户停止滚动时的当前滚动位置,或者用户停止输入字符后搜索框中的最终文本。实际上,使用运算符可以将多个顺序事件合并为一个,从而使回调只执行一次。这可以大大提高性能。去抖动的常见场景是调整大小、滚动和keyup/keydown事件。此外,您应该考虑包括任何触发过多计算或API调用的交互以进行去抖动。更多Jerry原创文章在这里:《王子熙》: