使用Easy Post,我想验证输入的用户地址是否准确和真实,然后提供有效性的反馈。
我担心我们会有一个API挂起,所以用户必须等待提交时的反馈,而不是它很快。
我可以使用ActiveJob处理此问题,但用户可能会输入错误的地址数据,我们必须通知客户返回并修复错误。
当然,我们希望让客户保持参与,但我们也希望确保他们的提交过程非常快捷。
实现这一目标的最佳方式是什么(最佳做法)?延迟工作,或者让他们等待超时,以确保他们不挂?
答案 0 :(得分:1)
在Platanus,我们开发了job notifier gem。它与ActiveJob一起使用,允许您返回异步反馈。使用此gem,您可以让用户输入地址,稍后通知错误或成功。我认为如果不是一个严重的问题,如果你有一个方便的工具,那么以后纠正错误并不严重
答案 1 :(得分:0)
我认为您可以在后台验证输入的数据是否正确。
例如,您可以通过javascript事件(onblur)获取地址数据并通过ActiveJob将其发送到EasyPost端点,并让用户填写表单的其余部分。
当用户填写其他表单字段时,您将收到EasyPost的回复,并可能会突出显示绿色(如果有效)或红色(如果没有)的字段。
您也可以呈现相应的错误消息。
这种方法可以让您最大限度地减少提交意见并让用户保持参与。
答案 2 :(得分:0)
我不能说我对您的用例有具体的回应。但这是我要遵循的方法。
如果API对我的应用程序至关重要,我会将用户重定向到一个页面,在那里他们会被告知他们的地址正在被验证。这将有助于我的Web服务器和我的用户体验。因为我已经使用了Heroku一段时间,我知道超过30秒的请求会被终止。
我还会查看API以查看添加AJAX验证的方法。
但是,正如您所说,您也考虑使用ActiveJob,您可以在模型上有一个标志(主要是数据库列),以检查地址是否有效以及用户在您的应用程序中转换时,让他/她知情(可能带有静态横幅或与您的UI一致的地方)他的地址验证失败。
我相信这样,您的用户可以获得良好的体验,同时探索应用程序的好处。