保存其他函数的AJAX响应(例如全局变量?)

时间:2014-01-06 16:16:16

标签: javascript php jquery ajax json

我是PHP,JavaScript,JQuery,JSON和AJAX的新手。几个星期前我开始学习所有这些东西 我的问题:
我正在创建一个显示数据库数据的网站。在网站上,应该可以搜索,订购和过滤数据。 现在,我从一个AJAX请求中收到一个JSON_encoded数组,其中包含数据库中的所有数据。现在我问是否可以在全局变量中保存来自AJAX请求的响应,例如,如果用户想要订购数据,我不需要再次从数据库中获取数据。 (通过使用像php函数“multisort()”)的东西 或者我是否必须在查询ORDER BY中使用新的查询/ Ajax请求来订购数据?

我已经读过,由于Ajax的异步性,保存到全局变量不起作用。那么如何避免许多Ajax请求呢?或许多Ajax请求解决此问题的常用方法?

我希望你能理解我的问题 如果你想我可以附上我的书面代码,但是没有尝试解决这个问题,因为我想了解什么是常见的解决方案。

4 个答案:

答案 0 :(得分:1)

我认为从数据库中完成它会更容易,也更有效率。你有SQL来帮助你进行过滤和排序。将它存储在变量中可能会占用服务器上太多的内存 - 只是为了存储已经存在于数据库中的数据

对于用户的每个请求,向数据库发送请求并显示数据

答案 1 :(得分:0)

如果您有用户系统,则可以将数据序列化或json_encode到用户会话。尽管如此,取决于数据。

答案 2 :(得分:0)

HTTP是无状态协议。有几种方法可以做到这一点:

  • 将数据存储在服务器上。您可以使用某种会话机制并使用cookie,以便服务器可以跟踪用户会话。在PHP中,您将把数据存储在$ _SESSION变量中。
  • 将数据存储在用户计算机上。在初始请求中将其全部发送,并根据需要使用javascript进行过滤。
  • 我会建议第一个选项取决于你要处理的数据量。发送大量数据可能会妨碍某些浏览器的性能。当然,如果你还没有实施会议,现在你必须这样做 希望这会有所帮助:)

    答案 3 :(得分:0)

    您可以在这样的全局变量中保存客户端的ajax响应。希望这有用。

    if (!window.OPT) window.OPT = {};
    
    $.ajax({ url: '/yourURL/' }).done( 
          function(data) {
        OPT.AJAXResult = data ;
            } );