Как рассчитывать на страницу, используя кристальный язык и kemal

У меня есть меню, пример:

<a href="/dashboard">Dashboard</a>
<a href="/list-book">List Table</a>
<a href="/book/category/">Category</a>
<a href="/book/detail/">Detail</a>

И я хочу создать быстрое выпадающее меню с наиболее просматриваемыми. Мой jquery:

var mySession = window.sessionStorage, pageCount;
        window.addEventListener('load', function(){
           if(!mySession.getItem("pageCount")){
              mySession.setItem('pageCount', 1);
           } else {
              pageCount = mySession.getItem("pageCount");
              pageCount = parseInt(pageCount) + 1;
              mySession.setItem('pageCount', pageCount );
           }
           console.log('page view count of current browsing session', mySession.getItem("pageCount"));
           var x = pageCount;
           console.log(x)

           $.ajax({
              type: 'POST',
              url: '/dashboard',
              data: {"count":x},
              complete: function(r){
            alert("success");
            }

            });
        });

И мой бэкэнд:

get "/dashboard" do |env|
render "views/dashboard.ecr"
end

post "/dashboard" do |env|

body = env.params.body
spawn do
data = {
  "page"  => "dashboard",
  "count" => body["count"],
  "user" => "admin",
}

check_page = DB1["page_count"].find_one({"page" => "dashboard"})
if check_page
  DB1["page_count"].update({"page" => "dashboard"},
    {
      "$set" => {"count" => body["count"]},
    })
else
  DB1["page_count"].insert(data)
end
  end
env.redirect "/dashboard"
end

Но, таким образом, посчитать всю страницу. Я буду считать страницу за страницей, каждая страница нажата пользователем. Можете мне помочь.

1 ответ

Я бы сделал это так:

  1. Открыв страницу, пользователь отправляет GET-запрос к приложению -> route (например, "/dashboard"), соответственно, мы можем считать, что один запрос равен +1 для количества страниц панели мониторинга.

  2. В MongoDB вы создаете коллекцию с двумя ключами: page_name лайк dashboard_views_count (для названия страницы магазина) и views (для увеличения количества просмотров), затем вам нужно изучить оператор $inc в MongoDB. Это даст простой способ увеличить счетчик.

  3. После этого мы делаем промежуточное ПО для запросов на улов. Это помогает извлечь из пути к странице env и записать в MongoDB.

В результате это будет выглядеть на:

  1. Пользователь открыл '/ панель инструментов'
  2. Middleware перехватывает этот запрос и извлекает имя страницы из env
  3. Промежуточное программное обеспечение записывает имя страницы и +1 в MongoDB

PS Вместо Монго предлагаю рассмотреть Redis для встречного магазина.

Другие вопросы по тегам