Javascript Jquery即时搜索在尝试太多次后暂停
在我的即时搜索调用GODADDY上的LAMP SQL Server后,搜索崩溃,不会返回任何即时搜索结果。可能出了什么问题?在进行过多的即时搜索后,服务器会崩溃吗 脚本如下:Javascript Jquery即时搜索在尝试太多次后暂停,javascript,jquery,Javascript,Jquery,在我的即时搜索调用GODADDY上的LAMP SQL Server后,搜索崩溃,不会返回任何即时搜索结果。可能出了什么问题?在进行过多的即时搜索后,服务器会崩溃吗 脚本如下: <form role="form" method="post" class="search"> <input type="text" class="form-control" id="keyword" placeholder="Search for the perfect horse...">
<form role="form" method="post" class="search">
<input type="text" class="form-control" id="keyword" placeholder="Search for the perfect horse...">
</form></center>
<center><ul id="content"></ul></center>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#keyword').on('input', function () {
var searchKeyword = $(this).val();
if (searchKeyword.length >= 0) {
$.post('search2.php', { keywords: searchKeyword }, function (data) {
$('ul#content').empty()
$.each(data, function () {
$('ul#content').append('<a href="getgift2.php?id=' + this.Horse + '">' + this.Horse + ' ' + this.odds + ' ' + this.UTCTime + ' ' + this.state + '</a><br /><br />');
});
}, "json");
}
});
});
</script>
if (!empty($_POST['keywords'])) {
$dateWindow=(int)$_POST['dateWindow'];
$keywords = $db->real_escape_string($_POST['keywords']);
$sql = "SELECT Horse, odds, UTCTime, state FROM Runners WHERE Horse LIKE '%".$keywords."%' and UTCTime > '".$d."' ORDER BY UTCTime ASC";
$result = $db->query($sql) or die($mysqli->error);
if ($result->num_rows > 0) {
while ($obj = $result->fetch_object()) {
$arr[] = array('Horse' => $obj->Horse, 'odds' => $obj->odds, 'UTCTime' => $obj->UTCTime, 'state' => $obj->state);
}
}
}
echo json_encode($arr) ;
是的,即时搜索请求可能会导致服务器崩溃,因为快速请求被发送到服务器并执行大量mysql查询以获得结果。
一个好的解决方案是使用库来限制您的函数,以避免服务器崩溃。if!空$\u POST['keywords']{$dateWindow=int$\u POST['dateWindow'];$keywords=$db->real\u escape\u string$\u POST['keywords'];$sql=SELECT Horse,赔率,UTCTime,来自跑步者的状态,其中类似于马的“.$keywords.%”和UTCTime>“$d.”按UTCTime ASC排序;$result=$db->query$sql或die$mysqli->error;if$result->num rows>0{while$obj=$result->fetch_object{$arr[]=数组'Horse'=>$obj->Horse',赔率'=>$obj->赔率,'UTCTime'=>$obj->UTCTime',state'=>$obj->state;}}}}}}echo json_encode$arr;不要在注释中发布代码块。编辑您的问题。