我有一个链接Twitter API的Rails应用程序(使用Twitter gem)。
用户在主页上输入用户名,“创建”操作会执行Twitter API调用和计算,之后会保存新记录并加载“show”操作。
如果用户已经存在,则无需API调用,它将直接重定向到“show”。
由于计算需要一段时间,我认为最好的方法是使用加载动画显示用户的页面(例如localhost / user / username),调用一个动作通过Ajax执行Twitter API任务,然后使用JS 输出结果。
我之前没有使用过Ajax和Rails的经验,而且我看过的任何教程都倾向于处理在同一页面上提交的表单,这里略有不同。
如果有更好的做法,请感谢任何帮助或指示或建议。
我正在使用jQuery。
答案 0 :(得分:0)
我的建议是创建一个jQuery函数,每隔几秒就会ping你的服务器,以检查twitter api调用是否已经完成。这样,您可以使用加载动画加载用户主页,然后只需删除动画或在ping服务器时完成其他操作即可确认。
要实现这一点,您可能必须有办法保持用户的Twitter api呼叫状态。一种简单的方法是在用户对象上有一个属性,用于存储调用的状态(例如,0 =挂起,1 =成功,2 =错误)。
然后,您可以启动服务器上的任务,该任务将调用Twitter并填充api调用属性。客户端将ping服务器以获取状态代码,然后采取适当的操作(继续显示动画,重定向,显示错误,......)