【发布时间】:2013-01-28 13:47:27
【问题描述】:
我的网站非常动态,它从数据库中收集数据。当我在测试时,我按下了刷新键并按住了一段时间,服务器宕机了。 (这是一个简单的 DoS 攻击)。如何阻止用户继续点击刷新按钮。 谁能告诉我解决方案。像 gmail 一样,转到 gmail 帐户并按 F5 并按住一段时间。 Gmail 将显示此消息
“很抱歉,您的 Gmail 帐户暂时无法使用。对于给您带来的不便,我们深表歉意,并建议您过几分钟再试一次。您可以查看应用程序状态仪表板了解服务的当前状态。”
谢谢
【问题讨论】:
-
与一百万用户在 Google 上进行单页加载相比,您的“按住 F5”问题微不足道。因此,您应该尝试着眼于更大的图景。检查您的服务器代码,进行优化并找出导致它崩溃的瓶颈,而不是为单个的、可以忽略的问题找到解决方案。
-
在 JavaScript 中,您可以有效地提出一个提示,询问用户“您确定吗?”,请参阅this question 的答案。然后在超时后删除侦听器。 (很明显,如果他们关闭了 JavaScript 或没有在浏览器中加载页面,这不会阻止它)
-
@Joseph the Dreamer:我没有将 google 与我的 webApp 进行比较,我的应用程序也没有崩溃。我正在从传感器实时收集数据,这是大量数据,然后我对这些数据进行一些计算,这需要一些时间。例如,如果我按 F5 30 秒,webApp 会关闭一段时间(1-2 分钟)。
-
请详细说明您的方法,而不是提供模糊的概述。如果您发布实际代码,说明数据流,涉及哪些实体等会更好。
标签: javascript jsp servlets