Как рассчитывать на страницу, используя кристальный язык и kemal - PullRequest
0 голосов
/ 27 сентября 2018

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

<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 Ответ

0 голосов
/ 28 сентября 2018

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

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

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

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

В результате это будет выглядеть следующим образом:

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

PS Вместо Mongo я предлагаю рассмотреть Redis для счетчика хранилища.

...