如何获取JavaScript的网页浏览量?
我想获取并显示页面被查看的次数,就像Stack Overflow一样。
如何通过JavaScript实现?谢谢!
答案 0 :(得分:1)
这可以在javascript中完成。您已使用浏览器本地存储来存储页面视图计数以使用它。您可以使用window.localStorage或window.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)
您可能希望将其存储在数据库中。