簡體   English   中英

如何使用Sinatra自動刷新顯示的值?

[英]How do I auto refresh the displayed value using Sinatra?

我有一個使用Sinatra和Twilio API在Heroku上運行的Ruby應用程序。

隊列工作正常,我可以創建一個ERB來顯示隊列中的呼叫數量。 如果隊列中有電話,並且我刷新,它將顯示新號碼。

如何使它自動執行此操作,這是否意味着瀏覽器自動刷新,還是頁面本身每隔X秒從API提取一次?

get '/display' do
account_sid = 'sid'
auth_token  = 'token'
@client = Twilio::REST::Client.new account_sid, auth_token

# Get an object from its sid. If you do not have a sid,
# check out the list resource examples on this page
queue = @client.account.queues.list.each do |queue|
friendlyName = queue.friendly_name

end

@size =     @client.account.queues.get("sid")
    @display = @size.current_size
    erb :display
end 

display.erb具有:

Current queue size is <%= @display %>

那么,如何使其刷新,以便定期向用戶顯示更新的隊列大小? 還是我只是將該對象放入ERB文件並使其循環運行?

那么,如何使其刷新,以便定期向用戶顯示更新的隊列大小?

一種解決方案是使用ajax回調服務器。 您可以使用放在html頁面中的javascript進行ajax調用。 使用ajax,不必連續重新加載頁面-而是可以將新信息插入到頁面中。 Ajax調用使用javascript的setInterval()函數啟動,以使其反復重復。

您還可以使用WebSockets打開持久連接並將數據從服務器推送到客戶端。 這將需要在服務器端進行定時循環,以定期推送數據。

我建議使用ajax路由。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM