Sinatra + Ajax加载动态内容

时间:2012-06-13 11:19:46

标签: ajax jquery web sinatra

我想创建一个使用Ajax(JQuery)填充动态信息的页面。该信息将来自我需要在其他网址中执行的各种GET。 我将使用Sinatra + JQuery来实现这一点,但由于我的WEB体验几乎为零,并且不知道如何做到这一点。 对此的必要条件是:

  • 每次GET完成时,页面上都会显示一行新信息。
  • 如果GET无法完成,页面上会显示默认信息。

到目前为止,我的想法是做这样的事情:

  • 让我的控制器在一个线程中执行每个GET。
  • 每次线程结束时,无论成功与否,我都会通知视图结果并呈现部分
  • 我会尽可能多的部分(我必须做的每次GET)
  • 我第一次加载页面时填写了默认信息,我通过AJAX更新了成功的GET响应

这似乎不是正确的方法,因此我要求某人已经做过类似的事情或者在这方面有更多经验。

1 个答案:

答案 0 :(得分:1)

您从一个简单的get('/'){}路由开始,该路由包含默认消息(或任何其他GET路由)。然后,您将拥有要在默认路由上显示的其他GET路由。在Sinatra中,您可以使用request.xhr?检查请求是否为xhr请求。如果您有xhr请求,则将json值返回给视图,否则拒绝请求或使用正确的html呈现视图。这是在你的sinatra后端。在您的视图中,您可以使用JQuery或任何其他JS库或普通JS来处理异步数据请求。您可以使用JQuery中的ajax函数从路由中请求数据,然后将它们添加到DOM中。这很简单:)

现在,您将不得不调查JQuery站点如何发出ajax请求以及如何将数据附加到现有DOM。这就是它的全部内容。