从数据库查询结果中增量提取数据

时间:2018-07-05 21:49:45

标签: php jquery sql ajax

我正在使用db_query()从PostgreSQL数据库中选择数据。有没有一种方法可以从与AJAX链接的PHP文件创建的查询结果中增量提取数据?这是使用简化变量分配的示例尝试:

PHP文件:

<?php
if (isset($test_var)) {
  echo $test_var;
}
else {
  echo "undefined";
  $test_var = "Variable has been set";
  //$test_var = db_query("...");
}

来源(主页):

<input type="submit" name="submit" value="Submit" onclick='click_query()'/>
<div id="myDivD" style="display: none;"></div>

<script>
function click_query() {
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } 
  else { 
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("myDivD").innerHTML=this.responseText;
      alert(this.responseText);
    }
  }
  xmlhttp.open("GET","/sites/all/modules/afb/afb.php, true);
  xmlhttp.send();
}
</script>

我很乐观,这可能会奏效,但并没有为它失败感到非常惊讶。仅返回“未定义”。

我以前曾尝试用PHP / Javascript做客户端的所有事情,这导致加载时间很慢。此后,我的数据集已经大大增加(接近100倍)。我正在尝试使用AJAX在服务器端执行更多处理。理想情况下,我将能够一次运行一次由用户指定的自定义SQL查询,并从查询结果中提取选择的行以填充页面。但是,我一直想不出一种方法来将SQL查询结果保存在内存中,而不将所有内容传递给客户端。这将使重新运行查询成为必要,这将导致不切实际的加载时间。

查询非常复杂,以至于无法在服务器端保存特定的查询结果。除非也许可以压缩和增量解压缩客户端数据以节省内存并最大化性能?有没有一种方法可以保持PHP文件通过AJAX链接,直到刷新或更改主页为止(以防止丢失分配的变量)?尽管我在jQuery方面没有太多经验,但我对可能的jQuery解决方案(这似乎是实现AJAX的首选方法)也很感兴趣。

0 个答案:

没有答案