如何在客户端机器上存储和重用php/mysql查询

How to store on the client machine and reuse php/mysql query?

本文关键字:php 查询 mysql 存储 客户端 机器      更新时间:2023-09-26

很抱歉,这可能是一个非常基本的问题,但我是从网上自学的,不知道还能问谁。

我想知道是否有一种方法可以执行php/mysql查询到远程服务器,然后将结果返回给客户端机器。我计划使用要由用户访问的查询(2D)的结果和要执行的其他查询。它必须由javascript脚本通过ajax调用或以更好的方式访问

我想这样做是因为我想"加速"网站,并限制用户在执行查询时损失的时间。

示例:用户想要查看公司X的所有员工的一些数据。Php选择公司X的所有员工并将结果"发送回"机器,并将结果存储在机器中。之后,用户可以只筛选男性员工,或者有车的员工,或者既有男性又有车的员工

编辑:当我得到它时,这将把整个查询显示为页面上的一个表,并且它们将根据用户输入进行过滤。

我使用类似的解决方案,显示我需要显示的表列,并在表示数据的div中添加其他自定义div值。

<div class="card selected" id="26912" name="Afflicted Deserter" cost="3R" dualface="Werewolf Ransacker" exp="DKA" type="Creature - Human Werewolf">Afflicted Deserter || Werewolf Ransacker</div>

我使用onclick事件选择div并将div值存储为变量。

  SelectCard = function  (card) {
    $('body').data({"currentID":$(card).attr('id'), "currentNAME":$(card).attr('name'), "currentCOST":$(card).attr('cost'), "currentTYPE":$(card).attr('type'), "currentEXP":$(card).attr('exp')})
    $('#cardIMG').attr('src',"mtg-img/" + $(card).attr('exp') + "/" + $(card).attr('name') + ".full.jpg");
  }

我对所有不想使用的条目应用了hidden。我还使用代码选择下一个/上一个div上箭头向上/向下。

MoveArrows = function  () {
$(document).keydown(function(e){
      if (e.keyCode == 40) { 
        if(chosen === "") {
            chosen = 0;
        } else if((chosen+1) < $('div.card').length) {
          // testvalue = $('div.card').next(".hidden").index();
          // console.log("testvalue:", testvalue)
            chosen++; 
        }
        $('div.card').removeClass('selected');
        while ($('#' + parentDiv).find('div.card').eq(chosen).hasClass('hidden')){
          chosen++;
        }
        $('#' + parentDiv).find('div.card').eq(chosen).addClass('selected');
        SelectCard( $('#' + parentDiv).find('div.card').eq(chosen))
        return false;
    }
    if (e.keyCode == 38) { 
        if(chosen === "") {
            chosen = 0;
        } else if(chosen > 0) {
            chosen--;            
        }
        $('div.card').removeClass('selected');
        while ($('#' + parentDiv).find('div.card').eq(chosen).hasClass('hidden')){
          chosen--;
        }
        $('#' + parentDiv).find('div.card').eq(chosen).addClass('selected');
        SelectCard( $('#' + parentDiv).find('div.card').eq(chosen))
        return false;
    }
})
}

While循环查找下一个非隐藏div

我的问题是,当有太多的条目,向上/向下点击需要一段时间来选择下一个div。

数据表如何处理过滤后的结果?

javascript客户端处理的一个选项是出色的数据表jQuery插件。这将实现您的目标,即删除对原始查询进行排序或过滤的额外服务器调用。

如果你想让数据在会话之间持续存在,你可能需要考虑HTML5 Web Storage

你可以获取所有数据并将其呈现在某个表中,然后该表具有排序,搜索等功能。我使用http://www.datatables.net/