ruby-on-rails - Rails 项目中的网络 worker

标签 ruby-on-rails web-worker

我尝试使用 Web Worker 来同时运行多个 javascript 代码。要启动工作程序,我将以下内容放入我的 javascript 代码部分:

var worker = new Worker("my_task.js");
worker.onmessage = function(e) {
    console.log('Worker said: ', e.data);
};
worker.postMessage("test"); 

my_task.js 是与保存上述代码的文件相同的文件夹。就是这样 my_task.js 好像:
self.addEventListener('message', function(e) {
  self.postMessage(e.data);
}, false);

但是Ruby on Rails(版本3.2.1)似乎有问题:
Started GET "/users/my_task.js" for 127.0.0.1 at ...
...
...
ActiveRecord::RecordNotFound (Couldn't find User with id=my_task)

如您所见,Rails 尝试在脚本启动时发送 http get 请求。
我怎么解决这个问题?有没有更好的方法在 Rails 项目中使用 web workers?

谢谢

最佳答案

  • 将 my_task.js 放入 /public/javascripts
  • 在创建工作线程的 javascript 代码中,使用以下 ERB:var worker = new Worker("<%= javascript_path "my_task.js" %>");
  • 添加 .erb到上面的javascript代码所在的任何文件的扩展名。所以如果它是mypage.js ,变成 mypage.js.erb .

  • 以上适用于 Rails 4.2.0,ruby 2.0.0p598

    关于ruby-on-rails - Rails 项目中的网络 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14955948/

    相关文章:

    javascript - Rails - 动态更改表单中的选项

    javascript - 在 Javascript 中访问对象时自动调用函数

    javascript - 将大型数组传递给 webworker 时内存使用量不断增加

    javascript - 调试和分析网络 worker

    javascript - 为什么 Web Worker 性能在 30 秒后急剧下降?

    ruby-on-rails - 你如何 stub 特定模拟实例的所有方法

    ruby-on-rails - EmberJS 使用 ember-ajax 向 Rails API 服务器发出 HTTP Post 请求

    javascript - ActionView::MissingTemplate::缺少模板 - 部分 Java 脚本

    ruby-on-rails - Rails 3.2.8 中 Twitter Bootstrap 和 jQuery.ui 冲突

    javascript - 完成后是否需要终止/关闭/删除网络 worker ?