0

我已经编写了这段代码,如果用户键入邮政编码或城市名称,它使用类似查询从数据库中获取,现在问题是我有大约 1260 条记录,其中两个字段一个是城市,另一个是邮政编码

        SELECT code, area FROM post_codes WHERE code LIKE '$q%' or area LIKE '$q%'  ORDER BY area LIMIT 4

我已经阅读了用户发布的许多问题并在网上进行了研究,但也没有任何工作使用查询延迟。我什至在数据库中为这两个字段编制了索引。它获取记录的速度太慢,这是第一个问题,现在我的第二个问题是当用户在该文本字段中进行搜索并按下选项卡时,他可以绕过搜索并编写他想要如何限制的任何无效代码,这是我的代码供参考。

      $("#Postcode").autocomplete("get_codes2.php", {


        width: 260,
 queryDelay:0, 

   dataType: 'json',
   parse: function(data) {
            var array = new Array();
            for(var i=0;i<data.length;i++)
            {

            array[array.length] = { data: data[i], value: data[i].areacode, result: data[i].areacode};

            }
            return array;
    }, 

    formatItem: function(row) {                     





    return row.areacode;
    }






}).result(function (){
4

1 回答 1

1

我认为Drupal 的 API 搜索有一个非常好的方法来解决这个问题。他们让每个增量搜索都命中后端的替代方法是提供一个大的JSON 文件,该文件用于在客户端自动完成。

在他们的实现中,他们正在监听搜索输入的焦点事件,仅在实际需要时获取 JSON。

于 2012-07-02T11:28:57.863 回答