我尝试使用网络工作者能够同时运行多个JavaScript代码。为了启动worker,我将以下内容放入我的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 worker?
由于
答案 0 :(得分:5)
/public/javascripts
var worker = new Worker("<%= javascript_path "my_task.js" %>");
.erb
添加到找到上述javascript代码的任何文件的扩展名中。如果它是mypage.js
,则变为mypage.js.erb
。 上面的内容适用于Rails 4.2.0,ruby 2.0.0p598
答案 1 :(得分:0)
将my_task.js放在公共文件夹中。
答案 2 :(得分:0)
使用上述&lt;%javascript_path%&gt;
和lib / assets / javascripts使用Rail5为我工作
答案 3 :(得分:0)
以上<% javascript_path %>
和lib/assets/javascripts
使用Rail5为我工作了