【问题标题】:Ajax auto updates and server loadAjax 自动更新和服务器负载
【发布时间】:2012-01-27 12:42:11
【问题描述】:

我有一个项目需要一种始终在屏幕顶部可用的购物车。每当有人将鼠标悬停在“购物车”图标上时,就会显示其中的所有内容的列表。
但是,如果用户打开了我网站的两个选项卡,并且其中一个选项卡已添加到购物车中,那么另一个选项卡将过时并且需要刷新。

我的问题是:如果我使用 AJAX 不断更新项目列表(这将需要会话和数据库检查),它是否会在服务器(甚至浏览器)上产生足够大的负载以使其成为问题,或者这是常见的做法?如果这是一个问题,我还有什么其他方法可以让用户打开的每个选项卡都得到更新?

如果有人可以告诉我路径,以便我可以更多地研究它,甚至是我应该查找的名称,我将非常感激。谢谢。

【问题讨论】:

    标签: php javascript mysql ajax jquery


    【解决方案1】:

    浏览器没有负载,服务器上多了一个请求……也许这些请求没用,

    还有另一种方式名字server push

    如果您的请求数超过服务器功率,请使用这种方式,但如果您的请求很少且不重要,您可以经常使用服务器拉取

    【讨论】:

    • 谢谢!这正是我所需要的。
    【解决方案2】:

    Ajax 是这里的解决方案 - 它占用的空间非常小。只要您不随意使用它,它与重新加载页面几乎相同(如果操作正确,因为它提供较小的文档,所以更少)。事实上,研究表明,ajax 可以将服务器带宽使用量减少 60% 以上。

    您可以阅读有关速度问题的具体信息here

    我在 Tizag 学习了 Ajax,他们有出色的 Tutorial

    希望这有帮助:)

    【讨论】:

      【解决方案3】:

      您可以每隔一段时间进行 ajax 调用,以使用最新数据加载 div。像这样的

      (function getLatestCart(){  
         setTimeout(function(){   
            $("#latestCart").load("getCartDetails.php", getLatestCart);     
        }, 10000);  
      })();  
      

      这将每 10 秒调用一次该方法(您可以更改时间间隔)并将最新的购物车加载到 id 为 latestCart 的 div。

      【讨论】:

        【解决方案4】:

        您可以在本地跟踪此更改。

        使用 UserData(IE7 及以下版本)或 domStorage 更新数据,并每隔 10-20 秒检查一次数据是否已更改。

        【讨论】:

          猜你喜欢
          • 2021-05-29
          • 2018-06-01
          • 2015-10-19
          • 1970-01-01
          • 1970-01-01
          • 2014-03-30
          • 1970-01-01
          • 2019-08-20
          • 2013-11-05
          相关资源
          最近更新 更多