javascript - rails-javascript 交互的最佳实践?

标签 javascript ruby-on-rails ajax

我有一个显示 Google map 的页面。我想使用 Javascript 从我的数据库中获取几个点并将它们作为标记放置在 map 上。所以流程是:

  1. Javascript 使用参数调用 Rails 操作。
  2. Rails 查询数据库。
  3. Rails 返回响应。
  4. Javascript 更新页面(Rails 不能这样做,因为它必须知道 JS 映射对象)。

目前实现这种场景的最佳实践是什么?我知道我可以使用 Prototype Ajax.Request 来调用 Rails 操作,但是我应该如何调用在 Rails 操作返回结果时更新页面的 Javascript 函数?我应该更新一些隐藏的 HTML 并让事件监听器监听它吗?或者有更好的方法吗?

最佳答案

您有几个选择。

1) 您的 ajax 请求可以是“脚本”类型,这将允许您编写一个 action_name.js 文件以供您的 Rails 应用程序呈现。这可以访问您的所有页面项目(除非它是公开的,否则它不太可能访问您的 map 对象)

2) 我的偏好是让您的 javascript 查询 json 数据(类型“json”),这样您就可以在 JS 中随意使用该数据。我不使用原型(prototype),但一般流程是这样的。

  • 初始化你的 map
  • 使用 ajax 查询一些 json 数据(即带有经/纬度的位置)
  • rails reponds_to do |f| f.json { render :json => some_hash} end
  • 在您的 ajax 回调中(返回 javascript),遍历 json 数据并适本地向您的 map 添加点。 (或做任何你喜欢的事)

关于javascript - rails-javascript 交互的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636110/

相关文章:

javascript - Ajax 响应是文件下载

javascript - Puppeteer.js - 抓取域列表和存储数据

javascript - 在替换中使用匹配

javascript - 语法错误 : Reserved word "function"

ruby-on-rails - 我收到错误 : No DRb server is running. 而不是在本地进程中运行

javascript - 我想要一个 div 自动刷新而不刷新整个页面

javascript - 如何从 CSS 或 HTML 文件中的变量附加 CSS? Angular 4+

ruby-on-rails - Rails 中带有已定义关联的 form_for 第一个参数 nil 错误

ruby-on-rails - 我应该如何对这个模块进行单元测试?

javascript - ajax 忽略 url