0

在我的网站上,我需要记录一些有关访问者的数据,但重要的是我只记录人类访问者而不是任何机器人,尤其是坏机器人并且自动记录(验证码等不是一种选择)。

现在完成的方式是运行一个 JS,它动态添加一个运行数据记录的新 JS(它实际上运行一个 php 服务器端脚本,该脚本执行一些工作并返回一个 JS 代码)。这个解决方案的问题是所有图像都是在 JS 之后加载的,它会使已经很慢的站点减慢 0.5 秒到 1.5 秒(取决于站点和服务器负载)。

在背景图像中使用像素(在 CSS 文件中设置)是一种好习惯吗?

这种方式实现:

  1. 更快的页面加载
  2. 机器人被忽略(假设机器人不加载 CSS,如果它们加载则不加载 bg 图像,并且对于像谷歌这样的合法机器人,使用 robots.txt 阻止访问)

其他解决方案非常受欢迎。

它看起来像这样:

<div id="pixel"></div>

CSS:

#pixel {background: url(/nobot/somephp.php); width: 1px; height: 1px;}

机器人.txt

User-agent: *
Disallow: /nobot/

另一个问题,

我可以依赖坏机器人不会加载背景 CSS 图像的假设吗?


我知道有很多关于机器人的线程,但找不到任何最新的并谈论这个。

4

1 回答 1

1

您可以坚持使用 JS 解决方案并使用异步 HTTP 请求 ( XMLHttpRequest/AJAX)。我认为它可以让您比 CSS 解决方案更精确地控制一些棘手的方面(例如缓存控制)。

当然,它不会考虑未启用 JS 的访问者。

于 2012-11-28T15:55:14.043 回答