我有这段代码:
<?
if(isset($_POST['wallib']) {
$insert=mysql_query("INSERT INTO wall (message) VALUES ('".mysql_real_escape_string($_POST['wallib'])."')",$mydb);
}
?>
<form action='index.php?explore=home' method='post' name='wallHome'>
<input id="wallib" name="wallib" type="text" class="inputWall1" />
<a href="javascript:document.wallHome.submit();">Send</a>
</form>
如果我快速按下发送(无需等待响应,只需快速),我看到该消息仅在数据库上插入一次。
但是,如果我在php脚本中添加(例如)函数sleep(2);
,我仍然快速点击发送,它会在数据库中为每次点击添加字符串。< / p>
所以我在第一种情况下不是那么快?是的,一个愚蠢的问题......只是好奇...... :)
答案 0 :(得分:1)
很难说。这可能是一些竞争条件,并且可能取决于浏览器行为。可能是例如第二次点击(在浏览器内)关于它正在接收/处理响应并准备渲染输出的同时,并且在那时它使任何用户输入无效。
根据您使用的浏览器,您可以使用开发工具和插件来调试所有浏览器 - 服务器对话。查看Web服务器日志,检查两次点击触发的请求数量也很有用。