【问题标题】:Sinatra + Ajax to load dynamic contentSinatra + Ajax 加载动态内容
【发布时间】:2012-06-13 22:00:43
【问题描述】:

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

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

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

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

这似乎不是正确的方法,所以我在问已经做过类似事情或在这方面有更多经验的人一些帮助。

【问题讨论】:

    标签: ajax jquery web sinatra


    【解决方案1】:

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

    现在您必须在 JQuery 站点上研究如何发出 ajax 请求以及如何将数据附加到现有 DOM。仅此而已。

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多