我调的是接口,返回的是一个数组,我需要加载到页面上,页面有一个搜索功能,用户输入关键字后可以进行搜索,现在的问题是,我在第一次调接口以后,怎么保存这个数组的数据。当用户进行搜索的时候我就不用再去调接口获取那个数组了。我还要对这个数组进行排序,所以我现在实现的方法就是每次都会去请求接口,效率不高!大家有什么好的方法吗?  小弟在此谢过!

解决方案 »

  1.   


    //声明一个全局变量
    var searchData = {
    };
    $(xxx).keyup(function(){
    var key = $(this).val();
    //请求之前看一下全局变量是否有这个关键字的数据
    if(searchData[key]){
    ......
    return ;
    }
    //
       $.ajax({
    ...,
       success:function(data){
    //没有该关键字的数据就发一个请求,然后把返回的数据保存到全局变量里面,key用输入的关键字
    searchData[key] = data;
    }
    });
    });
      

  2.   

     是把数组转换成JS数组吗?   json_encode   我需要对这个数组进行模糊匹配哦   比如说用户名,或账号的模糊匹配
      

  3.   


     $.ajax({
          url:`````,
          data:````,
          success:function(result){
           localStorage.setItem(xxx,result);//把你接口中的数据放在localStorage中,只要不销毁,
           }                                 //就一直存在(数据可存储5M或15M根据你浏览器的种类)
    })