gpt4 book ai didi

javascript - ruby on Rails watch 函数的 Gon gem 监视所有变量

转载 作者:行者123 更新时间:2023-12-03 11:55:53 25 4
gpt4 key购买 nike

gon 是 ruby​​ on Rails 的一个 gem,用于将数据从 Controller 传递到 View 的 javascript。

它工作正常,只需传递数据,并观察一个变量。

但是当我有正常数据(不需要动态监视)和data1(需要监视)teogeher时,就会出现问题。

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

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

网页总是挂起。

有人遇到过这个问题吗?怎么解决这个问题?

我的 Controller 中的代码

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,而是更新从该 Controller 中的数据库加载的所有数据。即使我删除了

gon.nstatic=@Nstaticgon.vstatic=@Vstatic

gon 将从数据库检索到的所有数据加载到此 Controller 中,而不是其中的一部分。

为了让它只显示刷新部分,我删除了所有检索数据功能...

最佳答案

也许这不是答案,但也许它以某种方式有所帮助(评论太长),

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

gon.watch('test1', {interval: <ms>, url: '<url>'}, '<callback>')

要检查 ndataupdate 操作中的可用变量,您可以编写:

gon.all_variables

您也可以尝试使用以下方法清理变量:

gon.clear

关于javascript - ruby on Rails watch 函数的 Gon gem 监视所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com