Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面浏览量计数器sinatra?_Javascript_Html_Ruby_Sinatra - Fatal编程技术网

Javascript 页面浏览量计数器sinatra?

Javascript 页面浏览量计数器sinatra?,javascript,html,ruby,sinatra,Javascript,Html,Ruby,Sinatra,如何在Sinatra和Ruby中实现页面视图计数器 我已尝试使用@变量,但每当加载页面时,它们都会重置为零 像这个: 谢谢 我认为您的问题在于无法像往常一样在sinatra中存储全局变量。您需要在如下设置中存储页面视图计数数据 set:my\u config\u属性“hello world” 这是关于它的文件 所以关于它的问题仅仅将值存储在内存中是不够的,因为您的应用程序服务器可能会使用不同的进程为请求提供服务,并且每个进程都有一个不同的类变量副本。 即使在服务器重置时该操作仍然有效,您仍将丢失

如何在Sinatra和Ruby中实现页面视图计数器

我已尝试使用@变量,但每当加载页面时,它们都会重置为零

像这个:


谢谢

我认为您的问题在于无法像往常一样在sinatra中存储全局变量。您需要在如下设置中存储页面视图计数数据

set:my\u config\u属性“hello world”

这是关于它的文件
所以关于它的问题

仅仅将值存储在内存中是不够的,因为您的应用程序服务器可能会使用不同的进程为请求提供服务,并且每个进程都有一个不同的类变量副本。 即使在服务器重置时该操作仍然有效,您仍将丢失计数器值

我会使用一个专门的数据库,比如。做你想做的事既快又容易。您只需使用以下内容:

require "redis"
redis = Redis.new
total_pageviews = redis.incr("page_counter")

在DB中为页面对象添加一个附加字段“counter”。在该页面的每个请求中用+1更新它。你说的DB中的页面对象是什么意思?你的页面数据保存在哪里?它们是静态的还是dinamic(由数据库字段中的数据填充)?如果它们是静态的,则必须将视图计数存储在应用程序的文件中的某个位置。这将是丑陋的,但你可以使用文件打开和保存每次用户要求的页面,并保持在该特定文件的意见计数。这回答了你的问题吗?