You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何替换localStorage实现Tumblr博客的全端访问计数器?

Tumblr博客全局访问计数器解决方案

问题背景

我想给我的Tumblr博客加一个访问计数器,但目前用localStorage的代码只能统计单个访客自己的访问次数,没法统计所有访客的总访问量,应该用什么方案替换?

当前使用的代码:

var visitCount = localStorage.getItem("page_view");

if (visitCount) {
  visitCount = Number(visitCount) + 1;
  localStorage.setItem("page_view", visitCount);
} else {
  visitCount = 1;
  localStorage.setItem("page_view", 1);
}
counterContainer.innerHTML = visitCount;

可行替换方案

要统计所有访客的全局访问量,必须把计数存储在服务器端——因为客户端存储(比如localStorage)只能保存当前用户的数据,无法跨访客同步。以下是几种实用方案:

方案一:使用第三方嵌入式计数器服务

很多免费的计数器服务提供直接嵌入的脚本代码,你只需要把这段代码加到Tumblr主题的HTML里,就能自动统计全局访问量。这类服务会在自己的服务器上维护计数,每次页面加载时自动更新并显示总访问数,无需自己写后端逻辑。

方案二:自己搭建简单后端接口

如果你有服务器或者能用无服务器云函数(比如Vercel、Cloudflare的免费函数服务),可以自己写一个极简的计数接口:

  1. 后端逻辑:每次收到前端请求,就把服务器存储的计数加1,然后返回最新数值(可以用数据库、Redis或者文件存储计数,高访问量建议用Redis避免并发问题)
  2. 前端代码替换:把原来的localStorage代码换成请求后端接口的逻辑:
// 替换原localStorage代码
fetch('你的后端接口地址')
  .then(res => res.json())
  .then(data => {
    counterContainer.innerHTML = data.visitCount;
  })
  .catch(err => console.log('请求计数接口失败:', err));

举个Node.js+Express的后端示例(用文件存储计数,仅作演示):

const express = require('express');
const fs = require('fs');
const app = express();

// 允许跨域请求(因为Tumblr博客和你的后端域名不同)
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  next();
});

app.get('/get-visit-count', (req, res) => {
  fs.readFile('count.txt', 'utf8', (err, currentCount) => {
    let count = err ? 0 : parseInt(currentCount);
    count++;
    fs.writeFile('count.txt', count.toString(), () => {
      res.json({ visitCount: count });
    });
  });
});

app.listen(3000, () => console.log('计数接口运行中'));

方案三:利用Tumblr主题自带功能

部分付费或定制化Tumblr主题已经内置了全局访问计数功能,你可以检查自己的主题设置里有没有相关选项,或者更换带计数功能的主题。


内容的提问来源于stack exchange,提问作者diacetyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:13:24