网站上的用户可以点击按钮投票选出一张又一张图片。这通过jQuery向MySQL数据库发送一些请求。我不确定,但网站帐户可能最多允许10个连接。
在这种情况下,单个用户重复点击会导致多个请求,从而导致性能问题吗?如果是这样,有哪些简单的方法来限制请求?
编辑:重新提出的问题被标记为不清楚。
答案 0 :(得分:1)
MySQL Setting Account Resource Limits
从MySQL 4.0.2开始,您可以限制对个人帐户的以下服务器资源的访问权限:
帐户每小时可以发出的查询数
帐户每小时可以发布的更新次数
帐户每小时可以连接到服务器的次数
其他信息 -
MySQL没有查询超时值,也没有任何其他内置方法来限制单个查询。但是,编写一个可以终止长时间运行查询的脚本非常简单。您甚至可以捕获用户和查询,以便以后可以击败有问题的用户/程序员。
Here是使用PERL的示例。
修改以解决附加信息
根据您的应用所提出的查询,即使只需点击一下即可放下整个网站。虽然投票可以以非常轻量级的方式实施,但即使您有1000个用户提供重复点击以使网站响应。
您还可以限制应用程序级别的数据库命中 - 例如,通过在会话变量中保存用户已经投票的照片的ID - 在点击数据库之前检查该变量,您应该没问题
答案 1 :(得分:1)
首先确保您的问题是数据库,也许您的网络服务器上有一些逻辑需要很长时间才能处理。
但是,要“限制”您的请求,您必须优化查询,使用索引,在服务器上缓存,或者重新设计数据库结构。
希望这会有所帮助。干杯
答案 2 :(得分:1)
如果没有理由让任何人每隔几秒钟点击一次按钮,只需为该按钮设置一个禁用功能。因此,当它被点击时,它会被禁用5秒钟,然后再次重新渲染。
你可能想要查找一个更好的计时器方法,这是我所知道的一种方式。
你可以使用 按钮onclick-
document.getElementById("button").disabled = true;
var enableButton = setInterval( "enableButton()", 5000 );
function enableButton()
{
document.getElementById("button").disabled = false;
clearInterval(enableButton)
}
祝你好运