如何获取JavaScript的页面浏览量?

时间:2017-08-06 12:37:38

标签: javascript

如何获取JavaScript的网页浏览量?

我想获取并显示页面被查看的次数,就像Stack Overflow一样。

如何通过JavaScript实现?谢谢!

4 个答案:

答案 0 :(得分:1)

这可以在javascript中完成。您已使用浏览器本地存储来存储页面视图计数以使用它。您可以使用window.localStoragewindow.sessionStorage

sessionStorage将像php会话一样工作,只能通过一个浏览会话,如果你关闭浏览器,那么sessionStorage数据将被浏览器删除。但是,在用户手动删除浏览器数据之前,浏览器不会删除localStorage

我要告诉你两个实现:

使用localStorage:,您可以将变量存储到localStorage中,该变量可用于计算页面视图。 :

var myStorage = window.localStorage, pageCount;
window.addEventListener('load', function(){
   if(!myStorage.getItem("pageCount")){
      myStorage.setItem('pageCount', 1);
   } else {
      pageCount = myStorage.getItem("pageCount");
      pageCount = pageCount + 1;
      myStorage.setItem('pageCount', pageCount );
   }
   console.log('page view count', myStorage.getItem("pageCount"));
});

使用window.sessionStorage

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

答案 1 :(得分:0)

使用客户端JavaScript无法完成工作。

但是,如果您仍想使用JavaScript,那么您应该看一下Node.js.理想情况下,您可能希望记录唯一会话的数量,但您仍然可以将页面刷新记录为页面视图。

如果您了解Node.js的工作原理,可以使用以下代码完成此操作:

var http = require('http'); // Require HTTP module
var pageViewCount = 0; // Declare and initialise the page view count

var server = http.createServer(function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' }); // Headers

  pageViewCount++; // Increase the page view count for every successful page load request

  console.log('There are currently ' + pageViewCount + ' views'); // Output in console the amount of total page views
  res.end();
});

server.listen(8000);
console.log('Server is currently running');

您可以在此处找到有关Node.js的更多信息:https://nodejs.org/en/docs/

请记住,这个答案需要一些Node.js知识,但确认服务器端JavaScript可以用来为这个特定问题提供解决方案。

答案 2 :(得分:0)

使用nodejs(serverside javascript)和express(库),您可以执行以下操作:

 var counter = 0;
 var app = require("express");
app.get("/",function(req,res){
  counter++;
  res.render("main.ejs",{counter});
});

 app.listen(80);

main.ejs 应如下所示:

 The page was visited <%= counter %> times...

答案 3 :(得分:0)

您可能希望将其存储在数据库中。