经过多次尝试后,Jquery即时搜索失败

时间:2016-03-02 07:12:35

标签: 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></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) ;

1 个答案:

答案 0 :(得分:0)

是的,即时搜索请求可能会导致服务器崩溃,因为快速请求被发送到服务器并执行繁重的mysql查询以获取结果。 一个好的解决方案是使用jQuery throttle/debounce库来限制你的功能,以避免服务器崩溃。