首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gon gem for ruby on rails监视函数监视所有变量

Gon gem for ruby on rails监视函数监视所有变量
EN

Stack Overflow用户
提问于 2014-09-02 14:48:13
回答 1查看 1.1K关注 0票数 0

gon是ruby on rails的一个gem,用于将数据从控制器传递到视图的javascript。

它工作得很好,只需传递数据,然后观察一个变量。

但是当我有普通数据(不需要动态监视)和data1 (需要监视)时,问题就出现了。

Gon监视所有变量,而不是只监视gon.watch.data1。

这会导致刷新时间非常长(7k ms以上)

网页总是挂起。

以前有没有人遇到过这个问题?如何解决这个问题?

我的控制器中的代码

代码语言:javascript
复制
class GmapsController < ApplicationController
  def index
    @i=0
    @Nstatic=Array.new(NoiseDevice.all.length) {Array.new(4)} 
    @Vstatic=Array.new(VibrationDevice.all.length) {Array.new(4)}     
    @vabrdevices = VibrationDevice.find(:all)

    @vabrdevices.each do |vabrdevice|
    @Vstatic[@i][0]=Project.where(id: vabrdevice.project_id).pluck(:client_name).first.to_s

    @Vstatic[@i][1]=vabrdevice.latitude #
    @Vstatic[@i][2]=vabrdevice.longitude #

    @Vstatic[@i][3]=VibrationDevice.where(id: vabrdevice.id).pluck(:cont_value).first.to_s

    @i+=1
    end

    @i=0
    @noiseDevices = NoiseDevice.find(:all)
    @noiseDevices.each do |noiseDevice|
    @Nstatic[@i][0]=Project.where(id: noiseDevice.project_id).pluck(:client_name).first.to_s
    address=Project.where(id: noiseDevice.project_id).pluck(:jobsite_location).first.gsub(/\s+/, "+")


    @Nstatic[@i][1]=noiseDevice.latitude #
    @Nstatic[@i][2]=noiseDevice.longitude #
    @Nstatic[@i][3]=NoiseDatum.order(:updated_at).where(noise_device_id: noiseDevice.id).pluck(:leq).first.to_s

    @i+=1
    end




    gon.nstatic=@Nstatic
    gon.vstatic=@Vstatic



    end

def ndataupdate
@test=Array.new
@test=VibrationDevice.pluck(:cont_value).to_s
gon.watch.test1=@test

end
end

它不是只更新我的test1,而是更新从这个控制器中的数据库加载的所有数据。即使我删除了

gon.nstatic=@Nstatic gon.vstatic=@Vstatic

gon将从数据库中检索到的所有数据加载到这个控制器中,而不是其中的一部分。

为了使其只显示刷新部分,我删除了所有检索数据函数...

EN

回答 1

Stack Overflow用户

发布于 2014-09-02 15:57:29

也许它不是答案,但也许它有一定的帮助(注释太长),

因此,您可以指定手动url来更新变量,如下所示:

代码语言:javascript
复制
gon.watch('test1', {interval: <ms>, url: '<url>'}, '<callback>')

为了检查ndataupdate操作中的可用变量,您可以这样写:

代码语言:javascript
复制
gon.all_variables

此外,您还可以尝试使用以下命令清除变量:

代码语言:javascript
复制
gon.clear
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25617395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档