【问题标题】:How can I limit the refresh rate on a website?如何限制网站的刷新率?
【发布时间】:2017-07-04 16:21:15
【问题描述】:

我知道,可以定义一个 html 网站自动刷新的时间。但是有没有办法限制这个速率,例如不能按住 F5 键以“连续”刷新网站?是在 html 文件本身中,还是在具有某些设置的服务器上,特别是针对该文件?

【问题讨论】:

  • 遗憾的是,您不能轻易做到这一点。你为什么要这样做?
  • "在 html 文件本身中" — 否
  • "可能在服务器上" — 在某些范围内,但对于 SO 来说问题太广泛了。您需要选择一种编程语言、识别请求来源、记录来自给定来源的请求何时收到等。
  • 好吧,我正在使用 google-maps 开展一个项目,有些 api 每天最多 2500 个,其他一些每天最多 25000 个。由于每 1000 次刷新成本额外,我想将刷新限制为每分钟一次,所以没有人可以“伤害”或对我造成毫无意义的成本,只是无缘无故地刷新该网站。这就是背景。

标签: html refresh limit meta rate


【解决方案1】:

如果你能够阻止重新加载页面,你可以阻止用户总是关闭你的网站,除非他/她关闭浏览器,这会很麻烦。

几乎所有你能做的就是在重新加载页面之前问他你确定吗?但你不能完全阻止用户这样做

<script type="text/javascript">
    window.onbeforeunload = function() {
        return "are you sure you want to leave?";
    }
</script>

或者您可以在 keyDown 事件 e 发生时禁用 F5

if ((e.which || e.keyCode) == 82 || (e.which || e.keyCode) == 116) e.preventDefault(); };

但是如果您只想限制用户超出速率,您可以通过 PHP 和 ASP 等编程语言来处理它,并保存用户会话中的访问次数,如果超过该次数,则将他重定向到一些警告

【讨论】:

  • 好吧,我不想在离开网站之前警告用户,但是当他们刷新它或加载或重新加载页面时。实际上,我什至不想警告他们,只是为了防止他们加载该页面,如果他们在不到一分钟之前已经加载了该页面。
  • 您不能这样做。您可以禁用 F5 键,然后用户将无法使用 F5 键刷新页面,但他/她可以再次通过浏览器按钮重新加载页面。
  • 如果你能阻止重新加载页面,你可以阻止用户总是关闭你的网站
  • 嗯,我明白了。我将不得不引导用户通过另一个页面,在该页面中我计算用户对该页面的最后一次调用,然后将他引导至目标网站或警告网站。
  • 是的,您可以在用户会话中保存用户在您的页面中的访问次数,并在他超出当然的速率时阻止他,因为我认为您自己知道这将需要像 PHP 这样的编程语言或asp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 2012-03-11
  • 2010-12-30
相关资源
最近更新 更多